Как можно установить соединение между локальным портом и сервером?

Как мне соединить порт 25565 на своем локальном сервере (Ubuntu Server без графического интерфейса) с удаленным сервером? 

Цель: настроить доступ к ресурсу в локальной сети (например, к сайту) по адресу 127.0.0.1:25565 и перенаправить запросы на сервер с IP-адресом SERVER-IP:25565. Я пробовал использовать Wireguard, но у меня не получается направить трафик локальной сети на сервер с ПК. 

Также, необходимо перенаправить только порт 25565.
  • 9 октября 2024 г. 16:03
Ответы на вопрос 7
Чтобы установить соединение между локальным портом и удалённым сервером с перенаправлением запросов, вы можете использовать `ssh` с опцией перенаправления портов. Этот метод подойдет, если вы имеете SSH-доступ к удаленному серверу. В данном случае вы сможете перенаправить локальный порт (например, 25565) на определённый порт удалённого сервера. Вот основные шаги:

1. **Установите SSH на своем локальном сервере**, если он еще не установлен:

    ```bash
    sudo apt update
    sudo apt install openssh-client
    ```

2. **Запустите перенаправление портов** с помощью команды `ssh`. Подключитесь к удаленному серверу и на локальном порту 25565 создайте туннель к порту 25565 на удаленном сервере (замените `USER` и `SERVER-IP` на собственные значения):

    ```bash
    ssh -L 25565:localhost:25565 USER@SERVER-IP
    ```

   - `-L` указывает на локальное перенаправление порта.
   - `25565:localhost:25565` означает, что локальный порт 25565 будет перенаправлен на локальный порт 25565 удаленного сервера. 
   - `USER@SERVER-IP` — это ваш логин и IP-адрес удаленного сервера.

3. **Проверьте доступ к ресурсу**. Теперь вы можете получить доступ к ресурсу, который находится на удалённом сервере, через адрес `127.0.0.1:25565` на своем локальном сервере.

Если вы хотите, чтобы соединение работало в фоновом режиме, вы можете добавить `-f -N` к команде:

```bash
ssh -f -N -L 25565:localhost:25565 USER@SERVER-IP
```

- `-f` заставляет SSH перейти в фоновый режим после успешного аутентификации.
- `-N` говорит SSH, что вы не собираетесь запускать удаленную команду.

### Примечание по WireGuard

Если вы всё же хотите использовать WireGuard для создания VPN-туннеля, вам нужно настроить сервер и клиент правильно:

1. Убедитесь, что WireGuard установлен и настроен на обоих серверах.
2. В конфигурационном файле клиента вы можете добавить следующую строку для перенаправления трафика через VPN только для порта 25565:

```ini
PostUp = iptables -A FORWARD -i %i -p tcp --dport 25565 -j ACCEPT
PostDown = iptables -D FORWARD -i %i -p tcp --dport 25565 -j ACCEPT
```

Это позволит перенаправлять только трафик на указанный порт через туннель.

### В заключение

Если цель — просто перенаправление одного порта, SSH-перенаправление оказывается наиболее простым и эффективным вариантом. Использование WireGuard может потребовать больше времени на настройку, но это полезно для создания защищенных VPN.
Использовать <a href="https://habr.com/ru/companies/flant/articles/691388/" rel="nofollow">SSH туннель</a> .
Прочитав Ваши комментарии к ответам, сложилось стойкое впечатление, что Вы изобретатель дичайшего велосипеда. В особенности после упоминания cloudflare и A записи. <br/> <a href="https://qna.habr.com/user/VoidVolker" rel="nofollow">VoidVolker</a> верно написал про SSH, это работает. Но Ваш minecraft сервер лучше поднять на той же убунте, на <a href="https://habr.com/ru/articles/839980/" rel="nofollow">хабре есть статья</a>
Вообще у вас в голове мне кажется все смешалось "люди-кони"... посмотрите в сторону iptables...никакие вам тоннели не нужны только snat и dnat.
Вы не сайт из локального адреса перенаправляете, а запрос с вашего желаемого сервера должны перенаправить на адрес расположения. <br/> Сервер отвечает на запрос, не наоборот
В вашем случае самое оптимальное -- настроить адресную трансляцию внутрь сети средствами iptables или nftables в зависимости от того, что у вас там стоит на сервере. <br/> Если трудновато -- можно поискать и поставить на сервере программу типа TCP Proxy. <br/> <br/> SSH туннель конечно самое простое настройках, но постоянно поддерживать и восстанавливать SSH соединение -- так себе подход.
Чтобы подключаться к FTP-серверу на домашнем компьютере через VPS с использованием белого IP-адреса, вы можете рассмотреть один из двух вариантов. Вот они: <br/> <br/> ### Вариант 1: Настройка перенаправления портов <br/> <br/> 1. **Настройте VPN-соединение**: Убедитесь, что ваш домашний компьютер подключен к VPS через VPN. Это позволит вашему VPS видеть ваш домашний компьютер в частной сети. <br/> <br/> 2. **Перенаправление портов на VPS**: <br/> - На VPS вы можете настроить перенаправление порта с помощью iptables (если используется Linux): <br/> ```bash <br/> # Пример перенаправления порта 21 (FTP) <br/> iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination :21 <br/> iptables -A FORWARD -p tcp -d  --dport 21 -j ACCEPT <br/> ``` <br/> <br/> - Замените `` на локальный IP-адрес вашего домашнего компьютера в сети VPN. <br/> <br/> 3. **Настройка FTP-сервера**: Убедитесь, что у вас установлен FTP-сервер на вашем домашнем компьютере и он настроен для прослушивания соединений на порту 21 (или другой выбранный порт). Многие FTP-сервера автоматически поддерживают активный и пассивный режимы. <br/> <br/> 4. **Подключение через FTP клиенты**: Используйте FTP-клиент (например, FileZilla) на вашем устройстве вне VPN для подключения к белому IP-адресу вашего VPS. Параметры подключения: <br/> - Хост: белый IP-адрес вашего VPS <br/> - Порт: 21 (или любой другой, если вы настроили FTP на другом порту) <br/> - Логин и пароль: ваши учетные данные для FTP-сервера на домашнем компьютере. <br/> <br/> ### Вариант 2: Использование VPN-рутирования <br/> <br/> Если вы хотите выполнять подключение напрямую через ваш VPN-сервер, вы можете настроить маршрутизацию так, чтобы клиенты, находящиеся вне VPN, могли получить доступ к вашему домашнему компьютеру: <br/> <br/> 1. **VPN-сервер**: Убедитесь, что на вашем VPS установлен и настроен VPN-сервер (например, OpenVPN, WireGuard). <br/> <br/> 2. **Настройка маршрутизации**: Вам нужно настроить маршрутизацию так, чтобы ваш сервер VPN мог пересылать трафик от клиентов к вашему домашнему компьютеру. <br/> <br/> 3. **Доступ через FTP**: После того как маршрутизация настроена, вы можете подключаться к вашему домашнему FTP-серверу, используя его внутренний IP-адрес, который доступен из сети VPN. <br/> <br/> ### Дополнительные настройки безопасности <br/> <br/> 1. **Firewall**: Убедитесь, что файрвол вашего домашнего компьютера позволяют входящие соединения на FTP-порт (обычно 21). <br/> 2. **FTP-сервер**: Убедитесь, что ваш FTP-сервер настроен на использование безопасных методов (например, FTP через TLS/SSL), чтобы защитить данные при передаче. <br/> 3. **Динамический DNS**: Если у вас динамический IP-адрес на домашнем ПК, рассмотрите возможность использования сервиса динамического DNS (DynDNS, No-IP и т. д.) для упрощения доступа к вашему компьютеру. <br/> <br/> После выполнения всех приведенных шагов вы должны иметь возможность подключаться к вашему домашнему компьютеру через FTP, используя белый IP адрес вашего VPS с устройства вне VPN. <br/> <br/> Так ответил ИИ сам ещё не пробовал....
Похожие вопросы