web-dev-qa-db-ja.com

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

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

現在の設定:

Wifiホットスポットに接続しました(制御不能、ルーター設定にアクセスできません)OpenVPNサーバーに接続しました(構成を完全に制御できます)

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

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

openvpnのバージョンはOpenVPN2.3.2x86_64です。

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

設定plistファイルを介して送信するためにバインドアドレス(BindAddressIPv4-)を変更しようとしましたが、これが正しく行われなかったか、違いがありませんでした。

4
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
4
Dee Eff

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
user2313067