OpenVPN 客户机怎么访问主机 NAT 后面的虚拟服务器

OpenVPN 客户机怎么访问主机 NAT 后面的虚拟服务器,第1张

OpenVPN 客户机怎么访问主机 NAT 后面的虚拟服务器,第2张

路由器直接分配的网段是 192.168.0.0/24

主机 192.168.0.108 安装了几台 Vmware 虚拟机,网络模式为 NAT 虚拟机网段为 192.168.204.0/24 (主机 192.168.204.1,虚拟机 192.168.204.10-20 )

现在怎么才能让主机同路由器下的其他客户机(假设 192.168.0.107 )可以访问主机服务器上的虚拟机

我在主机上安装了 OpenVPN 服务器,主机中的虚拟机中可以 telnet 连上客户机,但是客户机只能脸上主机,连不上主机上的虚拟机

OpenVPN 客户机怎么访问主机 NAT 后面的虚拟服务器,photo_2021-02-07_12-37-26.jpg,第3张

附上 server.ovpn 和 client.ovpn

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.204.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 114.114.114.114"

keepalive 10 120
cipher AES-256-CBC

persist-key
persist-tun

status openvpn-status.log
log-append  openvpn.log
verb 3
explicit-exit-notify 1
client

dev tun
proto udp

remote 192.168.0.108 1194

resolv-retry infinite
nobind
persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key

cipher AES-256-CBC

verb 3
----------------------- 以下是精选回复-----------------------

答:正好前段時間有這方面的研究,給個參考鏈接,實測有用。Iptables 就解決了。
答:你的意思就是說 Openvpn clients 暴露出來嘛
答:https://unix.stackexchange.com/questions/449853/port-forwarding-using-openvpn-client
答:https://unix.stackexchange.com/questions/432175/port-forwarding-to-vpn-client
答:還有個方法,編譯 FullconeNAT Kernel module,和 iptables,直接實現 server Fullcone
答:在主机上抓包看看。
看你的 server 配置,把虚拟机所在网络的路由推送给了客户端,那么客户端到虚拟机的包应该会正确的发给主机,那问题应该就是主机没有转发给虚拟机,或者虚拟机的响应没有转发给客户端。猜测可能跟 VMware 的 NAT 模式下的网络限制有关(比如防火墙等)。所以先定位下具体哪里没走下去吧。
答:另外有个疑问,如你所说,客户端和服务端在一个路由器下,已经在一个子网里了,就应该不需要再连 vpn 了,连 vpn 的需求是啥?
答:先理解什么是 NAT:
局域网访问互联网,经过 NAT 转换肯定没问题,
那你认为互联网主机可以逆向访问局域网主机吗?肯定不行。
如果要实现,那就还需要 外网到内网的 入口 NAT ;
答:所谓 NAT 就是通过软件把主机当路由器,NAT 后面的虚拟机网络就是一个小型局域网。
所谓 桥接 就是通过软件把主机当成交换机,虚拟机直接暴露给外网。

如果是双向 NAT (路由转发),那就是 桥接(交换机)的功能了。
答:如果跨 IP 网段,数据包就需要先把数据包转发给网关(路由器),然后由路由器判断下一跳去哪。所以你要在路由器上检查一下发往虚拟机的包发去哪里了,(一般路由器默认只有一个指向 wan 口的默认路由,不会有 vmware 定义的路由,所以数据包就直接从默认的 wan 口发走了)

你可以在路由器再加一个路由指向 vmware 的虚拟机,将发往虚拟机网段的数据包先转发给 vmware 。

最后在 vmware 上再转发给虚拟机。
答:现在就是不确定的是,vmware 能不能把包正常转发给内部的虚拟机,这个没验证过。

我自己测试过 kvm 的 router 网络,是可以访问的虚拟机的。kvm 的 router 网络和 nat 应该差不太多。
答:客户机加的路由应该要指定网卡的。我一般用 ip 命令,不用 route 命令,这样试试 “sudo ip route replace 192.168.204.0/24 via 192.168.0.108 dev eth0”。eth0 是客户机的网卡名称,如果不是 eth0 需要替换下。然后可以在客户机上执行“sudo ip route show” 看下当前路由是否符合预期。


主机的防火墙策略也看一下,在主机上执行 “sudo iptables-save” 查看。
答:我也类似 25,很多也不动
答:windows 啊,那不了解了。

干脆一把梭吧,客户端跟虚拟机都连 vpn 里,通过 vpn 的网段通信 = =
答:vmware 改 bridge 模式

https://docs.vmware.com/en/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-3B504F2F-7A0B-415F-AE01-62363A95D052.html

With NAT, the virtual machine and the host system share a single network identity that is not visible outside the network.
答:收回#23 回复,貌似 NAT 支持 Port Forwarding: (多年未用 VMware-Workstation,仅纸上谈兵,逃~ )

https://docs.vmware.com/en/VMware-Workstation-Pro/15.0/com.vmware.ws.using.doc/GUID-E146C894-664C-479A-9E19-484400614BED.html
答:3 种方案。
1.VMWARE 网卡开 briage 模式
2.确保 windows 防火墙策略得当的情况下在虚拟器和 0.107 上使用 wireguard
3.0.108 宿主主机做端口转发 netsh interface portproxy add v4tov4 listenaddress=192.168.0.108 listenport=xxx connectaddress=192.168.204.2 connectport=xxx

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » OpenVPN 客户机怎么访问主机 NAT 后面的虚拟服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情