# 先到上游机子配置 NAT 转发
ip link add dnstream type gretap local #上游IP# remote #源站IP#
ip addr add 10.0.0.2 peer 10.0.0.1 dev dnstream
ip link set dnstream up
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
### eth0 为上游机子外网网卡
# 下面命令在下游机子操作
## 创建本地路由表(这条只需要执行一次)
echo 200 local >> /etc/iproute2/rt_tables
### 后续命令每次重启要重新执行
## 建立隧道
ip link add upstream type gretap local #源站IP# remote #上游IP#
ip addr add 10.0.0.1 peer 10.0.0.2 dev upstream
ip link set upstream up
## 配置本地路由表
ip rule add to #本机网段# table loacl
ip rule add to #上游网段# table loacl
ip rule add from #源站IP# table loacl
## 导入其他直连网段,如 Cloudflare 的,效果为 cf 回源直连
cat local.txt | while read line
do
ip rule add to $line table loacl;
done
## 查看本机默认路由,写进 local 路由表
ip route | grep default
ip route add default via #本机网关# dev #外网网卡# table local
### 直接复制 via 后面那段,前面加上 ip ro add default 最后加上 table local 就好了
## 删除默认路由并切换到上游服务器
ip route del default && ip route add default via 10.0.0.2 dev upstream src 10.0.0.1
### 这段必须 && 同时输入,删除默认路由会断网,SSH 断开
###(也可以把自家网段加进 local 表再操作,避免失误断网
## 验证配置是否生效
curl ipv4.ip.sb
补充
1. 上游机子需要开启 net.ipv4.ip_forward = 1 转发
2. ip route change default ... 就可以切换默认路由了