Чи потрібно мені відкривати певний порт на сервері OpenVPN для торрент-трафіку


4

Якщо я підключаюсь до сервера openvpn на порту 1194 з Tunnelblick на Mac (OSX 10.10), як я можу гарантувати, що порт, який використовується передачею (наприклад, 66887), буде відкритий для вхідних з'єднань?

Поточна настройка:

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

Передача працює, але повільна, і порт відображається як закритий у налаштуваннях мережі передачі. VPN-з'єднання openvpn працює нормально для всього стандартного трафіку http.

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

Версія openvpn - OpenVPN 2.3.2 x86_64.

Чи можливо переслати порт 66887 за цим сценарієм чи мені потрібен доступ до локального маршрутизатора локальної мережі, щоб це працювало?

Я спробував змінити адресу прив’язки - BindAddressIPv4 - для передачі через файл списку налаштувань, але або зробив це неправильно, або це не мало значення.


Ви знайшли рішення?
Sarge Borsch

Я не можу точно пам’ятати, але досить впевнений, що правила брандмауера у відповіді працювали на мене. Пам’ятайте, щоб виправити правила і перевірити, чи вони активні. 'man iptables' для отримання додаткової інформації.
codecowboy

Відповіді:


3

Здивований, ніхто не помітив, але 66887 не є дійсним номером порту.

https://stackoverflow.com/questions/113224/what-is-the-largest-tcp-ip-network-port-number-allowable-for-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

Або в C:

[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

3

Вам потрібно переслати порт на сервері 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

на жаль, це не працює
Sarge Borsch

Що саме не працює? Чи не виконуються команди? Вони бігають, але не пересилають порт?
user2313067

Я спробував запустити їх, і я також відкрив порт в ufw. Я не бачив жодних ознак помилок, але все тестування показує, що порт не пересилається.
Sarge Borsch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.