optimize code

This commit is contained in:
p_caiwfeng
2021-10-20 15:08:51 +08:00
parent 74deceed83
commit 6cacb3ab84
3 changed files with 17 additions and 10 deletions

View File

@@ -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(),
})

View File

@@ -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)
}

View File

@@ -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