自动开启服务器转发和NAT开关,更新xorm解决升级anylink后mysql无法同步表的问题

This commit is contained in:
wsczx
2022-11-21 03:49:08 +00:00
parent ae7fe993f7
commit 42de009e30
5 changed files with 146 additions and 31 deletions

View File

@@ -5,6 +5,7 @@ import (
"github.com/bjdgyc/anylink/base"
"github.com/bjdgyc/anylink/sessdata"
"github.com/coreos/go-iptables/iptables"
"github.com/songgao/water"
)
@@ -26,6 +27,26 @@ func checkTun() {
if err != nil {
base.Fatal("testTun err: ", err)
}
//开启服务器转发
if err := execCmd([]string{"sysctl -w net.ipv4.ip_forward=1"}); err != nil {
base.Error(err)
}
if base.Cfg.IptablesNat {
//添加NAT转发规则
ipt, err := iptables.New()
if err != nil {
base.Error(err)
return
}
natRule := []string{"-s", base.Cfg.Ipv4CIDR, "-o", base.Cfg.Ipv4Master, "-j", "MASQUERADE"}
forwardRule := []string{"-j", "ACCEPT"}
if natExists, _ := ipt.Exists("filter", "FORWARD", forwardRule...); !natExists {
ipt.Insert("nat", "POSTROUTING", 1, natRule...)
}
if forwardExists, _ := ipt.Exists("filter", "FORWARD", natRule...); !forwardExists {
ipt.Insert("filter", "FORWARD", 1, forwardRule...)
}
}
}
// 创建tun网卡