本文介绍如何通过 HE TunnelBroker 配合油猴脚本锁定朝鲜(KP)GeoIP,并利用 Linux LXC 切分出一个拥有独立公网 IPv6 的 Alpine 小鸡,全程 0 成本。
/48 子网。GeoIP 识别成功后,登录宿主机运行一键配置脚本:
bash <(curl -fsSL https://raw.githubusercontent.com/zhuanwan0905/tunnelbroker-auto-bind/main/tb_ipv6_autobind.sh)
输入 TunnelBroker 账号、密码及 Tunnel ID,完成隧道创建。绑定后宿主机上会出现名为 he-ipv6 的隧道虚拟网卡。
假设分配到 /48 网段为 2001:db8:1234::/48,规划一个 /64 网段分配给网桥和小鸡(例如 2001:db8:1234:101::/64):
2001:db8:1234:101::1/64
2001:db8:1234:101::2/64
apt update && apt install -y lxc lxc-templates bridge-utils uidmap curl iproute2 iptables
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.default.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1
sysctl -w net.ipv6.conf.default.proxy_ndp=1
ip link add name lxcbr0 type bridge 2>/dev/null
ip link set dev lxcbr0 up
ip -6 addr add 2001:db8:1234:101::1/64 dev lxcbr0
lxc-create -t download -n node101 -- -d alpine -r 3.21 -a amd64
将 /var/lib/lxc/node101/config 替换为以下内容(注意替换 IPv6 前缀):
lxc.include = /usr/share/lxc/config/common.conf
lxc.arch = linux64
lxc.uts.name = node101
lxc.rootfs.path = dir:/var/lib/lxc/node101/rootfs
lxc.tty.max = 0
lxc.pty.max = 1024
lxc.console.path = none
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
lxc.apparmor.profile = unconfined
lxc.cgroup2.memory.max = 134217728
lxc.cgroup2.memory.swap.max = 0
lxc.cgroup2.cpu.max = 10000 100000
lxc.net.0.type = veth
lxc.net.0.flags = up
lxc.net.0.link = lxcbr0
lxc.net.0.name = eth0
lxc.net.0.ipv6.address = 2001:db8:1234:101::2/64
lxc.net.0.ipv6.gateway = 2001:db8:1234:101::1
lxc-start -n node101
lxc-attach -n node101 -- sh -c "echo -e 'nameserver 2001:4860:4860::8888\nnameserver 2606:4700:4700::1111' > /etc/resolv.conf"
ip6tables -I FORWARD -i lxcbr0 -o he-ipv6 -j ACCEPT
ip6tables -I FORWARD -i he-ipv6 -o lxcbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -I FORWARD -d 2001:db8:1234:101::2 -p tcp --dport 22 -j ACCEPT
ip -6 neigh add proxy 2001:db8:1234:101::2 dev he-ipv6
测试容器网络连通性:
lxc-attach -n node101 -- ping -6 -c 3 2001:4860:4860::8888
lxc-attach -n node101
进入容器终端后执行:
apk update
apk add openssh curl
ssh-keygen -A
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
passwd root
rc-update add sshd default
/usr/sbin/sshd
exit
在本地终端(需具备 IPv6 环境)连接小鸡:
ssh root@2001:db8:1234:101::2
net.ipv6.conf.all.forwarding 是否为 1,确认 he-ipv6 网卡名称是否正确。ip6tables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
如需更多技术教程或网络配置支持,请访问三欧科技官网。