跨網路命名空間的連接埠轉送socks5代理

跨網路命名空間的連接埠轉送socks5代理

我終於設定了有效的 netns veth openvpn 連接,覆蓋了 systemd 服務文件,因此 openvpn 依賴 netns single shot 服務和 openvpn 服務的 tor。 Tor 可以工作,至少從它的日誌來看是這樣,但我無法存取它。我目前的netns-vpn.service文件是:

# netns
ExecStartPre=-ip netns delete openvpn
ExecStartPre= ip netns add openvpn

# links
ExecStartPre=ip link add vpn0 type veth peer name vpn1
ExecStartPre=ip link set vpn1 netns openvpn

# set links and localhost for vpn
ExecStartPre=ip            link set dev vpn0 up
ExecStartPre=ip -n openvpn link set dev   lo up
ExecStartPre=ip -n openvpn link set dev vpn1 up

# assign ips to them, and loop traffic from vpn1 to vpn0
ExecStartPre=ip            addr  add 10.0.0.0/24 dev vpn0
ExecStartPre=ip -n openvpn addr  add 10.0.0.1/24 dev vpn1
ExecStartPre=ip -n openvpn route add default via 10.0.0.0

# port forwarding
ExecStartPre=iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9049 -j DNAT --to-destination 10.0.0.1:9049
ExecStartPre=iptables -t nat -A PREROUTING -p udp -i eth0 --dport 9049 -j DNAT --to-destination 10.0.0.1:9049
ExecStartPre=iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 9049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ExecStartPre=iptables -A FORWARD -p udp -d 10.0.0.1 --dport 9049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# packet forwarding from eth0 to vpn0 and back
ExecStartPre=iptables -A FORWARD -i eth0 -o vpn0 -j ACCEPT
ExecStartPre=iptables -A FORWARD -o eth0 -i vpn0 -j ACCEPT

# idk
ExecStartPre=iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

連接埠轉送部分不適用於socks5代理程式。根據我收集的信息,我需要使用過濾器或-A OUTPUT,但我找不到帶有網路命名空間和socks5代理程式的範例來理解它。這對我來說都是新的。 Tcp轉送有效,用python http.server測試過,我想udp也應該如此。我不是在尋找socat跨命名空間解決方案或任何其他代理。

相關內容