
Если я подключаюсь к серверу 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 — недопустимый номер порта.
Номер порта представляет собой беззнаковое 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