私はそれを使用しています名前空間-openvpn洪水の急流トラフィックが常にVPNの背後にあることを確認してください。変更されたスクリプトは次のようになります。このブログ投稿VPN名前空間を物理ネットワークに接続するのに役立ちます。
ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns <NS-NAME> up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec <NS-NAME> ip addr add 10.200.200.2/24 dev vpn1
ip netns exec <NS-NAME> ip route add default via 10.200.200.1 dev vpn1
iptables -A INPUT \! -i vpn0 -s 10.200.200.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o en+ -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1
これにより、Delugeがネームスペースから開始できます。
sudo ip netns exec <NS-NAME> sudo -u $USER deluged
私は最初に使用しましたこの質問と回答同じ名前空間でdelugeデーモンとdeluge-webを実行し、socatを使用して要求をWeb UIポートに転送するには、次の手順を実行します。
socat tcp-listen:8112,reuseaddr,fork tcp-connect:10.200.200.2:8112
これは通常のDelugeの使用にはうまく機能しますが、スクリプトの理由でデーモン自体にアクセスする必要があるため、deluge-webを名前空間から移動し、デーモンポートに対して次のコマンドを試しました。
socat tcp-listen:58846,reuseaddr,fork tcp-connect:10.200.200.2:58846
ただし、Web UIを介してデーモンにアクセスしようとすると、socatで次のエラーが発生します。
2019/04/07 18:40:47 socat[13957] E connect(5, AF=2 10.200.200.2:58846, 16): Connection refused
使用このPythonライブラリ次のようにデーモンに接続します。
from deluge_client import DelugeRPCClient
client = DelugeRPCClient('127.0.0.1', 58846, 'user', 'pw')
client.connect()
エラー発生:
File "/usr/lib/python3.6/ssl.py", line 1109, in connect
self._real_connect(addr, False)
File "/usr/lib/python3.6/ssl.py", line 1100, in _real_connect
self.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:847)