有没有一种内网穿透的方法能获取到内网的 IP,把远程计算机当作内网计算机使用?

2020-03-18 16:18:47 +08:00
 Variazioni

需求是这样的。公司内网是没有公网 IP 的,之前远程办公都是用 Teamviewer 或者 frp 开个 3389 端口远程桌面到公司的一台 windows 服务器上工作。

最近逐渐无法忍受卡顿,于是把各种端口都用 frp 映射过来,frp 服务端是在家的一台有公网 IP 的服务器,在公司一台电脑上装 frp 客户端作为跳板机,把几台集群里的 mysql influxdb rabbitmq 之类的端口都映射过来,速度也可以接受。这样只需要链接 frp 的地址和映射的端口号。就能在本地连上远程的环境。

可是手动添加 frp 端口映射总是不能满足需求。微服务架构,一台机器就十几个服务,集群里有四五台机器。不只是连几个 mysql 的 3306 端口这么简单。如果全部的端口都手动添加,费时费力,可能还需要经常改动。

所以我在想。有没有办法通过一台跳板机。利用公司内网目前的 dhcp 获取内网 ip,把远程计算机当作公司内网的一台机器,直接连上内网环境?这样就能访问公司所有的 ip 了。

5859 次点击
所在节点    问与答
32 条回复
mauve
2020-03-19 09:59:42 +08:00
楼主的想法与我契合,我用 V2Ray 搭在树莓派上放公司完美实现了,请参考 V2Ray 新白话文教程 反向代理 2 一节 https://guide.v2fly.org/app/reverse2.html#b-的配置
efaun
2020-03-19 10:43:19 +08:00
安利一下 FCN,你跟我的需求是一样的,这是个在 github 上的不开源项目(当时被 V2 的人喷惨了),使用桥接模式,远程计算机就是公司内网的 IP,可以使用公司内网的资源
hongwanzhang
2020-03-19 11:16:53 +08:00
huawuya
2020-03-19 11:33:52 +08:00
@Variazioni 你的要求 vpn 或 zerotier 都可以做到,关键在于设置路由和网关。https://www.v2ex.com/t/653960 这是我在另一个帖子里关于使用 zerotier 来做到这一点的回答。
Variazioni
2020-03-19 14:16:51 +08:00
@huawuya #24 非常感谢提供这个方案,相比其他实现起来很方便。我在家里的电脑和公司的电脑安装了 zerotier。。两台电脑使用虚拟 ip 可以互相 ping 通。按照帖子里的说明添加了路由([公司 ip 段 /24] via [公司跳板机虚拟 ip]。。但是使用家里的电脑 ping 公司的非 ip。。并不能 ping 通。。两台电脑防火墙都是关闭的。。其他还需要设置什么东西吗?
huawuya
2020-03-19 23:16:30 +08:00
@Variazioni 我这没有什么别的设置了,在 zerotier 的网页上添加了路由就可以从家里的机器连公司网络里的任一台机器了。
例如我家里网段 192.168.0.X,公司网段 192.168.1.X,虚拟 IP 网段是 192.168.193.X。zerotier 网页上增加的路由是“192.168.1.0/24 via 192.168.193.5”。(192.168.193.5 是公司跳板机的虚拟 IP)。 增加后家里 win10 上就会自动添加一个路由设置 “192.168.1.0 255.255.255.0 192.168.193.5 192.168.193.107”(命令行下用 route print 查看) 192.168.193.107 是我家里 Win10 的虚拟 IP。表明发往 1 网段的数据都通过本机 zerotier 的虚拟网卡(193.107)发给公司的跳板机(193.5)。而公司的跳板机( centos7 )上本身就有 192.168.1.0 的路由,可以转发数据。
你可以看看跟你的设置有什么区别?
Variazioni
2020-03-20 08:51:41 +08:00
@huawuya #26 感谢回复,我这的配置确实是和你一样的,家里的 win10 上使用 route print 查看有路由。有一点不明白的是,“而公司的跳板机( centos7 )上本身就有 192.168.1.0 的路由”,这点可能不太一样?公司的 Windows 服务器并没有进行过特殊的设置,并且 IP 也是 DHCP 获取的。跟这个有关系吗?
Variazioni
2020-03-20 08:53:33 +08:00
@huawuya #26 另外公司的网络环境比较复杂,从外网到我的 windows 服务器,中间可能有多层路由和交换机的拓扑,跟这个是不是也有关系?
Variazioni
2020-03-20 11:26:58 +08:00
@huawuya #26 我在公司新建了一台 centos 跳板机,安装 zerotier 并且配置好路由。发现家里可以不通过虚拟 ip ping 通公司 nat 网络的 centos 跳板机地址,但是只能 ping 通跳板机,不能 ping 通公司网络下的其他机器,是不是跟因为 centos 上没有公司 ip 段的路由,不能转发数据?
huawuya
2020-03-20 11:51:00 +08:00
@Variazioni 你能直接 ping 通跳板机的公司 ip 地址,说明是通了的,只是缺少跳板机到公司其它机器的路由。真没有的话可以手工加一个。

下面是我在公司的跳板机的路由。第一条是缺省就有的,第三条是 zerotier 自己加的。第二条的 192.168.1.5 就是跳板机的公司 ip 地址,有可能这个是我手工加上的,时间太长记不清了,供参考。

default via 192.168.1.1 dev ens192 proto static metric 100
192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.5 metric 100
192.168.193.0/24 dev zt2lrzli6v proto kernel scope link src 192.168.193.5
eunrui
169 天前
请教下 OP , 按照你说的 frp 穿透出来了,也能连上,SecureNat 要怎么配置才能访问到内网的资源呢,明明已经给 dhcp 了内网的网段
Variazioni
158 天前
@eunrui 不需要设置 SecureNat 。保持关闭。内网 ip 是目标网络的 dhcp 服务器分配的。如果已经有 ip 。但是没法访问同网段的资源,有可能是路由表的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX