linux 中实现虚拟机通过真机上网

虚拟机指网关:
虚拟机网关指向真实机ip(此ip可以和虚拟机通)
[root@virtual ~]# nmcli connection modify eth0 ipv4.gateway ip(此ip可以和虚拟机通)

真机路由转发需要开启:
真实机要开启路由转发功能
[root@holy_code ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

真机SNAT源地址转换:
[root@holy_code ~]# iptables -t nat -I POSTROUTING -s 虚拟机ip -j SNAT - -to-source IP(真实ip) ——所有来自源地址的都转发
或者:
[root@holy_code ~]# iptables -t nat -I POSTROUTING -s 虚拟机ip -t tcp -j SNAT - -to-source IP(真实ip)
[root@holy_code ~]# iptables -t nat -I POSTROUTING -s 虚拟机ip -t icmp -j SNAT - -to-source IP(真实ip) ——测试是否通(ping)
[root@holy_code ~]# iptables -t nat -I POSTROUTING -s 虚拟机ip -t udp -j SNAT - -to-source IP(真实ip) ——测试访问网页需要DNS(dns用udp协议)
最后通过tcp协议访问httpd

虚拟机配置DNS解析:
[root@virtual ~]# nmcli connection modify eth0 ipv4.dns 8.8.8.8
[root@virtual ~]# nmcli connection up eth0 ——激活网卡

访问网页成功!

你可能感兴趣的:(linux 中实现虚拟机通过真机上网)