diff --git a/pkg/main.go b/pkg/main.go index 2fc3fd8f..ca0290fb 100644 --- a/pkg/main.go +++ b/pkg/main.go @@ -34,6 +34,7 @@ var ( ) func init() { + gost.SetLogger(&gost.LogLogger{}) flag.StringVar(&kubeconfigpath, "kubeconfig", clientcmd.RecommendedHomeFile, "kubeconfig") flag.StringVar(&namespace, "namespace", "", "namespace") flag.StringVar(&services, "services", "", "services") @@ -53,8 +54,10 @@ func init() { if clientset, err = kubernetes.NewForConfig(config); err != nil { log.Fatal(err) } - if namespace, _, err = factory.ToRawKubeConfigLoader().Namespace(); err != nil { - log.Fatal(err) + if namespace == "" { + if namespace, _, err = factory.ToRawKubeConfigLoader().Namespace(); err != nil { + log.Fatal(err) + } } } @@ -70,11 +73,11 @@ func prepare() { } trafficManager := net.IPNet{ - IP: net.IPv4(192, 168, 254, 100), + IP: net.IPv4(192, 192, 254, 100), Mask: net.IPv4Mask(255, 255, 255, 0), } - err = remote.InitDHCP(clientset, namespace, &net.IPNet{IP: net.IPv4(196, 168, 254, 100), Mask: net.IPv4Mask(255, 255, 255, 0)}) + err = remote.InitDHCP(clientset, namespace, &trafficManager) if err != nil { log.Fatal(err) } @@ -104,11 +107,11 @@ func prepare() { //list = append(list, tunIp.String()) //if runtime.GOOS == "windows" { ipNet := net.IPNet{ - IP: net.IPv4(192, 168, 254, 100), + IP: net.IPv4(192, 192, 254, 100), Mask: net.IPv4Mask(255, 255, 255, 0), } list = append(list, ipNet.String()) - list = append(list, "192.168.254.162/32") + //list = append(list, "192.192.254.162/32") //} baseCfg.route.ChainNodes = []string{"socks5://127.0.0.1:10800?notls=true"} @@ -146,7 +149,7 @@ func main() { log.Fatal(err) } log.Info("dns service ok") - _ = exec.Command("ping", "-c", "4", "192.168.254.100").Run() + _ = exec.Command("ping", "-c", "4", "192.192.254.100").Run() select {} } @@ -177,11 +180,13 @@ func start() error { } func getCIDR(clientset *kubernetes.Clientset, ns string) (result []*net.IPNet, err error) { + result = make([]*net.IPNet, 0) var cidrs []*net.IPNet if nodeList, err := clientset.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{}); err == nil { for _, node := range nodeList.Items { if _, ip, err := net.ParseCIDR(node.Spec.PodCIDR); err == nil && ip != nil { - ip.Mask = net.IPv4Mask(255, 255, 0, 0) + ip.Mask = net.CIDRMask(24, 32) + ip.IP = ip.IP.Mask(ip.Mask) cidrs = append(cidrs, ip) err = nil } @@ -190,14 +195,16 @@ func getCIDR(clientset *kubernetes.Clientset, ns string) (result []*net.IPNet, e if services, err := clientset.CoreV1().Services(ns).List(context.TODO(), metav1.ListOptions{}); err == nil { for _, service := range services.Items { if ip := net.ParseIP(service.Spec.ClusterIP); ip != nil { - cidrs = append(cidrs, &net.IPNet{IP: ip, Mask: net.IPv4Mask(255, 255, 0, 0)}) + mask := net.CIDRMask(24, 32) + cidrs = append(cidrs, &net.IPNet{IP: ip.Mask(mask), Mask: mask}) } } } if podList, err := clientset.CoreV1().Pods(ns).List(context.TODO(), metav1.ListOptions{}); err == nil { for _, pod := range podList.Items { if ip := net.ParseIP(pod.Status.PodIP); ip != nil { - cidrs = append(cidrs, &net.IPNet{IP: ip, Mask: net.IPv4Mask(255, 255, 0, 0)}) + mask := net.CIDRMask(24, 32) + cidrs = append(cidrs, &net.IPNet{IP: ip.Mask(mask), Mask: mask}) } } } diff --git a/remote/dhcp.go b/remote/dhcp.go index 47959cc3..b19b56da 100644 --- a/remote/dhcp.go +++ b/remote/dhcp.go @@ -119,7 +119,7 @@ func InitDHCP(client *kubernetes.Clientset, namespace string, addr *net.IPNet) e return nil } if addr == nil { - addr = &net.IPNet{IP: net.IPv4(196, 168, 254, 100), Mask: net.IPv4Mask(255, 255, 255, 0)} + addr = &net.IPNet{IP: net.IPv4(192, 192, 254, 100), Mask: net.IPv4Mask(255, 255, 255, 0)} } var ips []string for i := 2; i < 254; i++ { @@ -161,7 +161,7 @@ func GetIpFromDHCP(client *kubernetes.Clientset, namespace string) (*net.IPNet, } return &net.IPNet{ - IP: net.IPv4(192, 168, 254, byte(ip)), + IP: net.IPv4(192, 192, 254, byte(ip)), Mask: net.IPv4Mask(255, 255, 255, 0), }, nil } @@ -186,7 +186,7 @@ func GetRandomIpFromDHCP(client *kubernetes.Clientset, namespace string) (*net.I atoi, _ := strconv.Atoi(ip) return &net.IPNet{ - IP: net.IPv4(192, 168, 254, byte(atoi)), + IP: net.IPv4(192, 192, 254, byte(atoi)), Mask: net.IPv4Mask(255, 255, 255, 0), }, nil } diff --git a/remote/remote.go b/remote/remote.go index fe98679b..400cf2ef 100644 --- a/remote/remote.go +++ b/remote/remote.go @@ -36,7 +36,7 @@ func CreateServerOutbound(clientset *kubernetes.Clientset, namespace string, ser "iptables -F", "iptables -P INPUT ACCEPT", "iptables -P FORWARD ACCEPT", - "iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j MASQUERADE", + "iptables -t nat -A POSTROUTING -s 192.192.254.0/24 -o eth0 -j MASQUERADE", } for _, ipNet := range nodeCIDR { args = append(args, "iptables -t nat -A POSTROUTING -s "+ipNet.String()+" -o eth0 -j MASQUERADE")