Нужно ли открывать определенный порт на сервере OpenVPN для торрент-трафика?

Нужно ли открывать определенный порт на сервере OpenVPN для торрент-трафика?

Если я подключаюсь к серверу OpenVPN через порт 1194 из Tunnelblick на Mac (OSX 10.10), как я могу гарантировать, что порт, используемый Transmission (например, 66887), будет открыт для входящих подключений?

Текущая настройка:

Подключен к точке доступа Wi-Fi (вне моего контроля, нет доступа к настройкам маршрутизатора) Подключен к серверу OpenVPN (у меня есть полный контроль над конфигурацией)

Передача «работает», но медленно, и порт отображается как закрытый в настройках сети передачи. VPN-подключение openvpn работает нормально для всего стандартного http-трафика.

Openvpn запущен на удаленном сервере Ubuntu. Я пробовал использовать ufw, чтобы открыть указанный выше порт, но это не дало эффекта, и я подозреваю, что требуется более глубокая сетевая конфигурация.

Версия OpenVPN — OpenVPN 2.3.2 x86_64.

Возможно ли перенаправить порт 66887 в этом сценарии или мне нужен доступ к локальному маршрутизатору LAN, чтобы это работало?

Я попытался изменить адрес привязки - BindAddressIPv4 - для Transmission через файл настроек plist, но либо сделал это неправильно, либо это не помогло.

решение1

Удивлен, что никто не заметил, но 66887 — недопустимый номер порта.

https://stackoverflow.com/questions/113224/какой-самый-большой-номер-сетевого-порта-tcp-ip-разрешаемый-для-ipv4#113228

Номер порта представляет собой беззнаковое 16-битное целое число, то есть 65535.

Допустимый диапазон портов — 0-65535.
Поскольку вы указываете недопустимый порт 66887, большинство операционных систем обрежут его до 1351:

[root@f ~]# tcpdump -qnn host 8.8.8.8 & telnet 8.8.8.8 66887
[1] 4054
Trying 8.8.8.8...
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:30:56.175482 IP 10.0.0.42.60280 > 8.8.8.8.1351: tcp 0

Или на языке С:

[root@f ~]# cat > 16.c << EOF
> #include <stdio.h>
> #include <stdint.h>
> int main(void) {
>  uint16_t port=66887;
>  printf("%d\n",port);
>  return 0;
> }
> EOF
[root@f ~]# gcc -o 16 16.c
16.c: In function ‘main’:
16.c:4: warning: large integer implicitly truncated to unsigned type
[root@f ~]# ./16
1351

решение2

Вам необходимо перенаправить порт на вашем сервере OpenVPN.

Я не знаю команд UFW, но при использовании iptables команды будут такими (10.8.0.6 — IP-адрес вашего компьютера при подключении к VPN, а 66887 — порт для переадресации):

iptables -t nat -A PREROUTING -p tcp --dport 66887 -j DNAT --to 10.8.0.6:66887
iptables -t nat -A PREROUTING -p udp --dport 66887 -j DNAT --to 10.8.0.6:66887

Связанный контент