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

Как мне соединить порт 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.
Использовать SSH туннель .
Прочитав Ваши комментарии к ответам, сложилось стойкое впечатление, что Вы изобретатель дичайшего велосипеда. В особенности после упоминания cloudflare и A записи. 
VoidVolker верно написал про SSH, это работает. Но Ваш minecraft сервер лучше поднять на той же убунте, на хабре есть статья
Вообще у вас в голове мне кажется все смешалось "люди-кони"... посмотрите в сторону iptables...никакие вам тоннели не нужны только snat и dnat.
Вы не сайт из локального адреса перенаправляете, а запрос с вашего желаемого сервера должны перенаправить на адрес расположения. 
Сервер отвечает на запрос, не наоборот
В вашем случае самое оптимальное -- настроить адресную трансляцию внутрь сети средствами iptables или nftables в зависимости от того, что у вас там стоит на сервере. 
Если трудновато -- можно поискать и поставить на сервере программу типа TCP Proxy.

SSH туннель конечно самое простое настройках, но постоянно поддерживать и восстанавливать SSH соединение -- так себе подход.
Чтобы подключаться к FTP-серверу на домашнем компьютере через VPS с использованием белого IP-адреса, вы можете рассмотреть один из двух вариантов. Вот они: 

### Вариант 1: Настройка перенаправления портов

1. **Настройте VPN-соединение**: Убедитесь, что ваш домашний компьютер подключен к VPS через VPN. Это позволит вашему VPS видеть ваш домашний компьютер в частной сети.

2. **Перенаправление портов на VPS**:
- На VPS вы можете настроить перенаправление порта с помощью iptables (если используется Linux):
```bash
# Пример перенаправления порта 21 (FTP)
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination :21
iptables -A FORWARD -p tcp -d --dport 21 -j ACCEPT
```

- Замените `` на локальный IP-адрес вашего домашнего компьютера в сети VPN.

3. **Настройка FTP-сервера**: Убедитесь, что у вас установлен FTP-сервер на вашем домашнем компьютере и он настроен для прослушивания соединений на порту 21 (или другой выбранный порт). Многие FTP-сервера автоматически поддерживают активный и пассивный режимы.

4. **Подключение через FTP клиенты**: Используйте FTP-клиент (например, FileZilla) на вашем устройстве вне VPN для подключения к белому IP-адресу вашего VPS. Параметры подключения:
- Хост: белый IP-адрес вашего VPS
- Порт: 21 (или любой другой, если вы настроили FTP на другом порту)
- Логин и пароль: ваши учетные данные для FTP-сервера на домашнем компьютере.

### Вариант 2: Использование VPN-рутирования

Если вы хотите выполнять подключение напрямую через ваш VPN-сервер, вы можете настроить маршрутизацию так, чтобы клиенты, находящиеся вне VPN, могли получить доступ к вашему домашнему компьютеру:

1. **VPN-сервер**: Убедитесь, что на вашем VPS установлен и настроен VPN-сервер (например, OpenVPN, WireGuard).

2. **Настройка маршрутизации**: Вам нужно настроить маршрутизацию так, чтобы ваш сервер VPN мог пересылать трафик от клиентов к вашему домашнему компьютеру.

3. **Доступ через FTP**: После того как маршрутизация настроена, вы можете подключаться к вашему домашнему FTP-серверу, используя его внутренний IP-адрес, который доступен из сети VPN.

### Дополнительные настройки безопасности

1. **Firewall**: Убедитесь, что файрвол вашего домашнего компьютера позволяют входящие соединения на FTP-порт (обычно 21).
2. **FTP-сервер**: Убедитесь, что ваш FTP-сервер настроен на использование безопасных методов (например, FTP через TLS/SSL), чтобы защитить данные при передаче.
3. **Динамический DNS**: Если у вас динамический IP-адрес на домашнем ПК, рассмотрите возможность использования сервиса динамического DNS (DynDNS, No-IP и т. д.) для упрощения доступа к вашему компьютеру.

После выполнения всех приведенных шагов вы должны иметь возможность подключаться к вашему домашнему компьютеру через FTP, используя белый IP адрес вашего VPS с устройства вне VPN.

Так ответил ИИ сам ещё не пробовал....
Похожие вопросы