我在本地机器上运行 sshuttle 到跳转主机,因此我可以访问网络中运行的服务(例如:在 ip 地址 192.168.220.4:1234 上)。当 sshuttle 运行时,我可以 curl http://192.168.220.4:1234并得到想要的响应。
在同一台本地机器上,我有一个 k8s 集群在我部署的地方运行,应用程序尝试从 192.168.220.4 读取(与curl http://192.168.220.4:1234
从 pod 运行相同)。即使 sshuttle 正在运行,这也不起作用。
似乎该命令curl http://192.168.220.4:1234
甚至从未离开 pod 边界。当我在同一个 pod 中运行 curl 命令时,我在 pod 上做了一个 tcpdump,下面是 tcpdump 的输出
12:48:52.972594 IP netshoot-deploy-64b8848dc7-q4srj.40584 > tkg-system-tkgm-mgmt-control-plane.tkg-system.svc.cluster.local.1234: Flags [S], seq 1236125654, win 64240, options [mss 1460,sackOK,TS val 732010 ecr 0,nop,wscale 7], length 0
12:48:52.972642 IP tkg-system-tkgm-mgmt-control-plane.tkg-system.svc.cluster.local.1234 > netshoot-deploy-64b8848dc7-q4srj.40584: Flags [R.], seq 0, ack 1236125655, win 0, length 0
12:48:58.105694 ARP, Request who-has 100.96.0.1 tell netshoot-deploy-64b8848dc7-q4srj, length 28
12:48:58.105753 ARP, Request who-has netshoot-deploy-64b8848dc7-q4srj tell 100.96.0.1, length 28
12:48:58.105761 ARP, Reply netshoot-deploy-64b8848dc7-q4srj is-at 26:71:47:6e:72:28 (oui Unknown), length 28
12:48:58.105767 ARP, Reply 100.96.0.1 is-at 6e:6c:e7:95:88:8f (oui Unknown), length 28
12:49:00.470387 IP netshoot-deploy-64b8848dc7-q4srj.40690 > tkg-system-tkgm-mgmt-control-plane.tkg-system.svc.cluster.local.1234: Flags [S], seq 2746497924, win 64240, options [mss 1460,sackOK,TS val 739508 ecr 0,nop,wscale 7], length 0
12:49:00.470439 IP tkg-system-tkgm-mgmt-control-plane.tkg-system.svc.cluster.local.1234 > netshoot-deploy-64b8848dc7-q4srj.40690: Flags [R.], seq 0, ack 2746497925, win 0, length 0
为什么请求从我的本地机器通过 sshuttle 工作,而不是从在同一台机器上运行的 k8s 集群工作?
我怎样才能做到这一点,以便当我curl http://192.168.220.4:1234
从我的 k8s 类集群中的 pod 内部运行时,流量会通过 sshuttle 的隧道/vpn。