背景:我用以下的脚本在宿主机上,在 wg0-ns 上,开启了一个 wireguard 接口
在其他机器上可以正常 ping 通 wg0-ns 这个 namespace 上的 wg0
我想通过这个 wg0 ,在其他设备上访问到宿主机服务 比如 http ssh 等
问了 AI 还没有搞定
#!/bin/bash
ip netns exec wg0-ns ip link del dev $WG_INTERFACE
ip netns del wg0-ns
ip netns add wg0-ns
ip link add dev $WG_INTERFACE type wireguard
ip link set $WG_INTERFACE netns wg0-ns
ip netns exec wg0-ns ip address add dev $WG_INTERFACE 192.168.11.8/24
ip netns exec wg0-ns ip -6 address add dev $WG_INTERFACE 'fd08:6381:11::8/64'
ip netns exec wg0-ns wg set $WG_INTERFACE private-key /etc/wg0/private.key
ip link add veth-host type veth peer name veth-ns netns wg0-ns
ip link set veth-host up
ip addr add 192.168.222.1/24 dev veth-host
ip netns exec wg0-ns ip link set veth-ns up
ip netns exec wg0-ns ip addr add 192.168.222.2/24 dev veth-ns
ip netns exec wg0-ns ip route add default via 192.168.222.1
iptables -t nat -I POSTROUTING 1 -s 192.168.222.0/24 -j MASQUERADE
ip netns exec wg0-ns sh -c "echo 'nameserver 114.114.114.114' > /etc/resolv.conf"
ip netns exec wg0-ns wg set $WG_INTERFACE peer $PEER_PUBKEY preshared-key /etc/wg0/preshared.key endpoint $PEER_ENDPOINT persistent-keepalive 60 allowed-ips 192.168.11.0/24,fd08:6381:11::/64
ip netns exec wg0-ns ip link set up dev $WG_INTERFACE
1
yanqiyu 22 小时 37 分钟前
这个 namespace 开 forward
namespace 里面配防火墙往 veth-host 的流量开 masquerade 或者 host 这边写静态路由让 wireguard 的流量路由到那个 pair 然后 host 这边防火墙允许 veth-host 过来的流量访问这些端口 简单的说 netns 你就当作另外一台机器,veth peer 就是两台机器之间的网线,然后你该怎么配路由和防火墙就怎么配置 |