设为首页
收藏本站
黑币充值
VIP购买
用户登录
用户注册
请
登录
后使用快捷导航
没有帐号?
会员注册
用户名
Email
自动登录
找回密码
密码
登录
会员注册
论坛
家园
任务
排行榜
服务器
总版规
广告投放
邀请码
VIP购买
官方QQ群:
每日签到
会员求助
云排名
计算机基础
黑帽seo
白帽seo
建站分享
网赚营销
网络安全
linux交流
windows
资源教程
编程开发
数据库
艺术设计
视频制作
IT新闻
人生百态
金点子
每日签到
信息监察
站务公告
职位申请
站内投稿
站群服务
黑帽联盟
»
论坛
›
系统/web安全
›
linux交流
›
KVM 虚拟机 配置 NAT 连接方式上网
返回列表
查看:
488
|
回复:
0
[资源教程]
KVM 虚拟机 配置 NAT 连接方式上网
[复制链接]
admin
admin
当前离线
窥视卡
雷达卡
295
主题
18
听众
965
积分
管理员
TA的每日心情
难过
前天 00:16
签到天数: 370 天
[LV.9]以坛为家II
收听TA
发消息
电梯直达
楼主
|
只看该作者
|
倒序浏览
1、命令行安装方式
virt-install \
--name=kvm99 --ram 1024 --vcpus=1 \
--disk path=/home/vms/kvm99.qcow2,size=10,format=qcow2,bus=virtio \
--location=/mnt/CentOS-7-x86_64-Minimal-1611.iso --network network=default,model=virtio \
--graphics=none --console=pty,target_type=serial \
--extra-args="console=tty0 console=ttyS0"
复制代码
--network network=default 配置网络使用默认,NAT 方式
dnsmasq 服务
libvirt默认使用了一个名为default的nat网络,这个网络默认使用virbr0作为桥接接口,使用dnsmasq来为使用nat网络的虚拟机提供dns及dhcp服务,dnsmasq生效后的配置文件默认保存在以下路径:
/var/lib/libvirt/dnsmasq/default.hostsfile mac&&ip绑定的配置文件
/var/lib/libvirt/dnsmasq/default.leases dhcp分配到虚拟机的ip地址列表
/var/lib/libvirt/network/default.xml default网络的配置文件
dnsmasq服务的启动脚本在/etc/init.d/dnsmasq ,但是我们如果手动使用此脚本来启动服务将会导致dnsmasq读取其自己的配置文件来启动此服务,因此这么做是不推荐的,因为这个服务完全由libvirtd在接管,
当libvirtd服务启动的时候,它会将它管理的被标记为autostart的network一并启动起来,而启动network的时候就会自动调用dnsmasq并赋予其适宜的配置文件来运行服务。
使用libvirt管理的网络都会用到dnsmasq来产生相应的配置,比如定义了一个名为route110的network,那么这个route110将使用一个新的桥接接口virbr1来接入网络,并使用dnsmasq产生名为route110.hostsfile和route110.leases的配置文件。
其实这里提到的virbr0和virbr1都是libvirt产生的虚拟网卡,其作用就相当于一个虚拟交换机,为虚拟机提供网络转发服务。
2、安装完成后,修改网段,也可以用默认网段 192.168.122.0/24
virsh net-edit default
<network>
<name>default</name>
<uuid>5e3af757-8a76-4fe1-af65-3352b68e23f6</uuid>
<forward mode='nat'/>
<mac address='52:54:00:b1:22:d8'/>
<ip address='192.168.77.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.77.2' end='192.168.77.254'/>
</dhcp>
</ip>
</network>
复制代码
# 安装好 libvirtd 后,默认会安装一块 virbr0 的虚拟网卡,网段为 192.168.122.0/24
3、重新定义
virsh net-define /etc/libvirt/qemu/networks/default.xml
复制代码
4、停止 网卡
virsh net-destroy default
复制代码
5、启动网卡
virsh net-start default
复制代码
6、重启 libvirtd
systemctl restart libvirtd
复制代码
7、虚拟机配置 网卡
# 设置IP,其它参数已省略
…………
IPADDR=192.168.77.6
NETMASK=255.255.255.0
GATEWAY=192.168.77.1
DNS1=8.8.8.8
复制代码
8、宿主机 查看 iptables
iptables -t nat -nL
# 显示
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
RETURN all -- 192.168.77.0/24 224.0.0.0/24
RETURN all -- 192.168.77.0/24 255.255.255.255
MASQUERADE tcp -- 192.168.77.0/24 !192.168.77.0/24 masq ports: 1024-65535
MASQUERADE udp -- 192.168.77.0/24 !192.168.77.0/24 masq ports: 1024-65535
MASQUERADE all -- 192.168.77.0/24 !192.168.77.0/24
复制代码
iptables -t filter -nL
# 显示
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.77.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.77.0/24 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:68
复制代码
从上面防火墙可以看出, 在启动 libvirtd 网卡的时候,会动态生成 iptables nat,filter 表,以实现 SNAT 功能,虚拟机可以访问外网。因为没有保存,如果重启 iptables 会全部丢失,接下来我们重新启动 iptables 来手动配置 SNAT 功能
重启 iptables 后 虚拟机就不能上网了
systemctl restart iptables
复制代码
配置 SNAT 转发功能,实现虚拟机通过 宿主机 来上网
vim /etc/sysctl.conf
# 加入
net.ipv4.ip_forward = 1
复制代码
# 立退生效
sysctl –p
复制代码
# 清空规则链
iptables -F
复制代码
# 方法一 有固定IP 这里指宿主机 192.168.1.73
iptables -t nat -A POSTROUTING -s 192.168.77.0/24 -j SNAT --to-source 192.168.1.73
复制代码
# 方法二 如果没有固定IP
iptables -t nat -A POSTROUTING -s 192.168.77.0/24 -j MASQUERADE
复制代码
通过上面配置,这里虚拟机就可以上网了,也可以访问 192.168.1.0/24 网段的主机了,但是 192.168.1.0/24 网段的主机是不能访问 虚拟机 192.168.77.6,这时可以通过 端口映射来实现这个功能
宿主机 外网 192.168.1.73 内网 192.168.77.1 (这里就是生成的virbr0 虚拟网卡)
虚拟机 192.168.77.6
其它主机 192.168.1.86 (跟宿主机在一个网段)
实现 192.168.1.86 通过 访问 192.168.1.73 8802 端口 来实现 登陆 192.168.77.66 22 端口
配置 端口 映射功能,实现 192.168.1.0/24 网段主机 远程登陆 192.168.77.6
iptables -t nat -A PREROUTING -d 192.168.1.73 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 192.168.77.6:22
复制代码
保存生效
service iptables save
复制代码
这时找一台 192.168.1.0/24 网段的主机 我这里是 192.168.1.86,进行访问
telnet 192.168.1.73 8022
# 成功
Trying 192.168.1.73...
Connected to 192.168.1.73.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
复制代码
接下来配置 宿主机 filter 表防火墙
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0] # 转发功能要打开
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
COMMIT
复制代码
文章转载自:https://blog.51cto.com/mshxuyi/5857678
转播
0
淘帖
0
分享
0
收藏
0
赞
0
踩
0
帖子永久地址:
推荐给好友
黑帽联盟 - 论坛版权
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与
黑帽联盟
享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和
黑帽联盟
的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、
黑帽联盟
管理员和版主有权不事先通知发贴者而删除本文
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
会员注册
发表回复
回帖并转播
回帖后跳转到最后一页
发布主题
!fastreply!
收藏帖子
返回列表
搜索
个人中心
个人中心
登录或注册
回顶部
积分 0, 距离下一级还需 积分
回顶部