diff --git a/dns/dns.go b/dns/dns.go index 483d8a66..a1ad4100 100644 --- a/dns/dns.go +++ b/dns/dns.go @@ -11,8 +11,8 @@ import ( "k8s.io/client-go/rest" ) -func GetDNSServiceIpFromPod(clientset *kubernetes.Clientset, restclient *rest.RESTClient, config *rest.Config, podName, namespace string) string { - if ip, err := getDNSIp(clientset); err == nil && len(ip) != 0 { +func GetDNSServiceIPFromPod(clientset *kubernetes.Clientset, restclient *rest.RESTClient, config *rest.Config, podName, namespace string) string { + if ip, err := getDNSIP(clientset); err == nil && len(ip) != 0 { return ip } if ip, err := util.Shell(clientset, restclient, config, util.TrafficManager, namespace, "cat /etc/resolv.conf | grep nameserver | awk '{print$2}'"); err == nil && len(ip) != 0 { @@ -22,7 +22,7 @@ func GetDNSServiceIpFromPod(clientset *kubernetes.Clientset, restclient *rest.RE return "" } -func getDNSIp(clientset *kubernetes.Clientset) (string, error) { +func getDNSIP(clientset *kubernetes.Clientset) (string, error) { serviceList, err := clientset.CoreV1().Services(v1.NamespaceSystem).List(context.Background(), v1.ListOptions{ FieldSelector: fields.OneTermEqualSelector("metadata.name", "kube-dns").String(), }) diff --git a/pkg/doconnect.go b/pkg/doconnect.go index 0f9b5e89..e51dea20 100644 --- a/pkg/doconnect.go +++ b/pkg/doconnect.go @@ -121,7 +121,7 @@ func (c *ConnectOptions) createRemotePod() { list = append(list, trafficManager.String()) - c.nodeConfig.ChainNodes = "socks5://127.0.0.1:10800?notls=true" + c.nodeConfig.ChainNodes = "socks5://127.0.0.1:10800" c.nodeConfig.ServeNodes = []string{fmt.Sprintf("tun://:8421/127.0.0.1:8421?net=%s&route=%s", tunIp.String(), strings.Join(list, ","))} log.Info("your ip is " + tunIp.String()) @@ -181,9 +181,16 @@ func (c *ConnectOptions) DoConnect() { util.DeleteWindowsFirewallRule() } log.Info("dns service ok") - _ = exec.Command("ping", "-c", "4", "223.254.254.100").Run() + go func() { + for { + select { + case <-time.Tick(time.Second * 15): + _ = exec.Command("ping", "-c", "4", "223.254.254.100").Run() + } + } + }() - dnsServiceIp := dns.GetDNSServiceIpFromPod(c.clientset, c.restclient, c.config, util.TrafficManager, c.Namespace) + dnsServiceIp := dns.GetDNSServiceIPFromPod(c.clientset, c.restclient, c.config, util.TrafficManager, c.Namespace) if err := dns.SetupDNS(dnsServiceIp, c.Namespace); err != nil { log.Fatal(err) } diff --git a/pkg/route.go b/pkg/route.go index d87218d0..e205fcca 100644 --- a/pkg/route.go +++ b/pkg/route.go @@ -137,10 +137,10 @@ func parseIPRoutes(routeStringList string) (routes []tun.IPRoute) { return } - ss := strings.Split(routeStringList, ",") - for _, s := range ss { - if _, inet, _ := net.ParseCIDR(strings.TrimSpace(s)); inet != nil { - routes = append(routes, tun.IPRoute{Dest: inet}) + routeList := strings.Split(routeStringList, ",") + for _, route := range routeList { + if _, ipNet, _ := net.ParseCIDR(strings.TrimSpace(route)); ipNet != nil { + routes = append(routes, tun.IPRoute{Dest: ipNet}) } } return