題 我是否需要在OpenVPN服務器上打開特定端口以獲取torrent流量


如果我從Mac(OSX 10.10)上的Tunnelblick連接到端口1194上的openvpn服務器,我如何確保傳輸使用的端口(例如66887)將為傳入連接打開?

目前的設置:

連接到Wifi熱點(我無法控制,無法訪問路由器設置) 連接到OpenVPN服務器(我完全控製配置)

傳輸“工作”但速度很慢,端口在傳輸網絡首選項中顯示為關閉。 openvpn VPN連接適用於所有標準http流量。

Openvpn正在遠程Ubuntu服務器上運行。我嘗試使用ufw打開上面的端口,但這沒有任何影響,我懷疑需要更深的網絡配置。

openvpn版本是OpenVPN 2.3.2 x86_64。

是否可以在此方案中轉發端口66887,或者我是否需要訪問本地LAN路由器才能使其正常工作?

我嘗試通過首選項plist文件更改綁定地址 - BindAddressIPv4 - 但是要么做錯了,要么沒有區別。


4
2017-09-13 07:41


起源


你找到了解決方案嗎? - Sarge Borsch
我無法記住,但很確定答案中的防火牆規則對我有用。請記住刷新規則並檢查它們是否處於活動狀態。 'man iptables'了解更多信息。 - codecowboy


答案:


驚訝沒有人注意到,但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

2
2018-06-05 20:42





您需要轉發openvpn服務器上的端口。

我不知道ufw命令,但使用iptables,命令將是(當連接到VPN時,機器的IP為10.8.0.6,而轉發端口為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

3
2017-09-13 10:45



不幸的是,這不起作用 - Sarge Borsch
究竟什麼不起作用?命令不運行?他們運行但不轉發港口? - user2313067
我試過運行它們,我也打開了端口 ufw。我沒有看到任何錯誤跡象,但所有測試都表明端口未被轉發。 - Sarge Borsch