socat을 사용하여 다양한 네임스페이스의 Deluge 데몬에 액세스

socat을 사용하여 다양한 네임스페이스의 Deluge 데몬에 액세스

나는 그것을 사용하고 있다네임스페이스-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를 사용하여 요청을 웹 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

그러나 웹 UI를 통해 데몬에 액세스하려고 하면 socat에서 다음 오류가 발생합니다.

2019/04/07 18:40:47 socat[13957] E connect(5, AF=2 10.200.200.2:58846, 16): Connection refused

사용이 파이썬 라이브러리다음과 같이 데몬에 연결합니다.

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)

관련 정보