fix tun for darwin

This commit is contained in:
ginuerzh 2020-02-03 21:05:42 +08:00
parent be1f050250
commit 18a515a5eb
3 changed files with 8 additions and 1 deletions

View File

@ -450,6 +450,7 @@ func (r *route) GenRouters() ([]router, error) {
cfg := gost.TunConfig{ cfg := gost.TunConfig{
Name: node.Get("name"), Name: node.Get("name"),
Addr: node.Get("net"), Addr: node.Get("net"),
Peer: node.Get("peer"),
MTU: node.GetInt("mtu"), MTU: node.GetInt("mtu"),
Routes: tunRoutes, Routes: tunRoutes,
Gateway: node.Get("gw"), Gateway: node.Get("gw"),

View File

@ -48,6 +48,7 @@ type IPRoute struct {
type TunConfig struct { type TunConfig struct {
Name string Name string
Addr string Addr string
Peer string // peer addr of point-to-point on MacOS
MTU int MTU int
Routes []IPRoute Routes []IPRoute
Gateway string Gateway string

View File

@ -29,7 +29,12 @@ func createTun(cfg TunConfig) (conn net.Conn, itf *net.Interface, err error) {
mtu = DefaultMTU mtu = DefaultMTU
} }
cmd := fmt.Sprintf("ifconfig %s inet %s mtu %d up", ifce.Name(), cfg.Addr, mtu) peer := cfg.Peer
if peer == "" {
peer = ip.String()
}
cmd := fmt.Sprintf("ifconfig %s inet %s %s mtu %d up",
ifce.Name(), cfg.Addr, peer, mtu)
log.Log("[tun]", cmd) log.Log("[tun]", cmd)
args := strings.Split(cmd, " ") args := strings.Split(cmd, " ")
if er := exec.Command(args[0], args[1:]...).Run(); er != nil { if er := exec.Command(args[0], args[1:]...).Run(); er != nil {