トレントトラフィックのためにOpenVPNサーバー上の特定のポートを開く必要がありますか?

トレントトラフィックのためにOpenVPNサーバー上の特定のポートを開く必要がありますか?

Mac (OSX 10.10) 上の Tunnelblick からポート 1194 の openvpn サーバーに接続する場合、Transmission が使用するポート (例: 66887) が着信接続用に開いていることをどのように確認すればよいですか?

現在の設定:

Wi-Fi ホットスポットに接続 (私の管理外、ルーター設定にアクセスできません) OpenVPN サーバーに接続 (設定を完全に制御できます)

送信は「機能」しますが、遅く、送信ネットワーク設定でポートが閉じていると表示されます。openvpn VPN 接続は、すべての標準 http トラフィックに対して正常に機能します。

Openvpn はリモート Ubuntu サーバー上で実行されています。ufw を使用して上記のポートを開こうとしましたが、効果がなく、より深いネットワーク構成が必要であると思われます。

openvpnのバージョンはOpenVPN 2.3.2 x86_64です。

このシナリオでポート 66887 を転送することは可能ですか、それともこれを機能させるにはローカル LAN ルーターにアクセスする必要がありますか?

設定 plist ファイルを介して送信用のバインド アドレス (BindAddressIPv4) を変更しようとしましたが、誤って変更したか、何も変わりませんでした。

答え1

誰も気づかなかったようですが、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

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

関連情報