免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2075 | 回复: 8
打印 上一主题 下一主题

[网络配置] [已解决]求救! iptables端口映射问题 单机单网卡单ip kvm端口映射 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-05 10:32 |只看该作者 |倒序浏览
本帖最后由 jomcal 于 2015-06-05 11:59 编辑

最近在搞虚拟化,遇到N多坑, 在网上找了半天也没能解决我的问题,所以只能在这求助各位大牛

物理环境:  1主机 1网卡  1ip

操作系统: CentOS 6.6
网络配置: eth0  192.168.137.41(公网)

宿主系统安装mini桌面版,然后安装virt-manager 后自动安装各种包
用默认的NAT方式连接, 虚拟机可以上网

我想通过访问 192.168.137.41:8022 映射到虚拟机 192.168.122.57:22

虚拟机ip 192.168.122.57

宿主 ip addr 信息 供各位大牛参考

  1. [root@localhost ~]# ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.     inet6 ::1/128 scope host
  6.        valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8.     link/ether 8c:89:a5:3d:21:0b brd ff:ff:ff:ff:ff:ff
  9.     inet 192.168.137.41/24 brd 192.168.137.255 scope global eth0
  10.     inet6 fe80::8e89:a5ff:fe3d:210b/64 scope link
  11.        valid_lft forever preferred_lft forever
  12. 3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
  13.     link/ether 52:54:00:a0:cf:af brd ff:ff:ff:ff:ff:ff
  14.     inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
  15. 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
  16.     link/ether 52:54:00:a0:cf:af brd ff:ff:ff:ff:ff:ff
  17. 5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
  18.     link/ether fe:54:00:1b:06:af brd ff:ff:ff:ff:ff:ff
  19.     inet6 fe80::fc54:ff:fe1b:6af/64 scope link
  20.        valid_lft forever preferred_lft forever
复制代码
宿主iptables配置

  1. # Generated by iptables-save v1.4.7 on Fri Jun  5 10:54:41 2015
  2. *filter
  3. :INPUT ACCEPT [0:0]
  4. :FORWARD ACCEPT [0:0]
  5. :OUTPUT ACCEPT [3643:219865]
  6. -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
  7. -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
  8. -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
  9. -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
  10. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  11. -A INPUT -p icmp -j ACCEPT
  12. -A INPUT -i lo -j ACCEPT
  13. -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
  14. -A INPUT -p tcp -m state --state NEW -m tcp --dport 8022 -j ACCEPT   --- 开放8022端口
  15. -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
  16. -A INPUT -p tcp -m state --state NEW -m tcp --dport 6001 -j ACCEPT
  17. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  18. -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  19. -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
  20. -A FORWARD -i virbr0 -o virbr0 -j ACCEPT
  21. -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
  22. -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
  23. -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  24. COMMIT
  25. # Completed on Fri Jun  5 10:54:41 2015
  26. # Generated by iptables-save v1.4.7 on Fri Jun  5 10:54:41 2015
  27. *mangle
  28. :PREROUTING ACCEPT [8956:8794119]
  29. :INPUT ACCEPT [6843:8620681]
  30. :FORWARD ACCEPT [1993:167412]
  31. :OUTPUT ACCEPT [3643:219865]
  32. :POSTROUTING ACCEPT [5636:387277]
  33. -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
  34. COMMIT
  35. # Completed on Fri Jun  5 10:54:41 2015
  36. # Generated by iptables-save v1.4.7 on Fri Jun  5 10:54:41 2015
  37. *nat
  38. :PREROUTING ACCEPT [3:401]
  39. :POSTROUTING ACCEPT [0:0]
  40. :OUTPUT ACCEPT [0:0]
  41. -A PREROUTING -d 192.168.137.41/32 -p tcp -m tcp --dport 8022 -j DNAT --to-destination 192.168.122.57:22    --- 我理解这句为 来自137.41 8022端口的请求 转发到  122.57的22上
  42. -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
  43. -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
  44. -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
  45. -A POSTROUTING -s 192.168.122.0/24 -d 192.168.122.57/32 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.122.1    --- 来自122.0 访问 122.57 的22端口请求 返回给 122.1
  46. COMMIT
  47. # Completed on Fri Jun  5 10:54:41 2015
复制代码
宿主ifconfig -a

  1. [root@localhost ~]# ifconfig -a
  2. eth0      Link encap:Ethernet  HWaddr 8C:89:A5:3D:21:0B  
  3.           inet addr:192.168.137.41  Bcast:192.168.137.255  Mask:255.255.255.0
  4.           inet6 addr: fe80::8e89:a5ff:fe3d:210b/64 Scope:Link
  5.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  6.           RX packets:107239 errors:0 dropped:0 overruns:0 frame:0
  7.           TX packets:69853 errors:0 dropped:0 overruns:0 carrier:1
  8.           collisions:0 txqueuelen:1000
  9.           RX bytes:107299245 (102.3 MiB)  TX bytes:36702571 (35.0 MiB)

  10. lo        Link encap:Local Loopback  
  11.           inet addr:127.0.0.1  Mask:255.0.0.0
  12.           inet6 addr: ::1/128 Scope:Host
  13.           UP LOOPBACK RUNNING  MTU:65536  Metric:1
  14.           RX packets:7537 errors:0 dropped:0 overruns:0 frame:0
  15.           TX packets:7537 errors:0 dropped:0 overruns:0 carrier:0
  16.           collisions:0 txqueuelen:0
  17.           RX bytes:10463908 (9.9 MiB)  TX bytes:10463908 (9.9 MiB)

  18. virbr0    Link encap:Ethernet  HWaddr 52:54:00:A0:CF:AF  
  19.           inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
  20.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  21.           RX packets:38088 errors:0 dropped:0 overruns:0 frame:0
  22.           TX packets:68673 errors:0 dropped:0 overruns:0 carrier:0
  23.           collisions:0 txqueuelen:0
  24.           RX bytes:2180265 (2.0 MiB)  TX bytes:100182484 (95.5 MiB)

  25. virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:A0:CF:AF  
  26.           BROADCAST MULTICAST  MTU:1500  Metric:1
  27.           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  28.           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  29.           collisions:0 txqueuelen:500
  30.           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

  31. vnet0     Link encap:Ethernet  HWaddr FE:54:00:1B:06:AF  
  32.           inet6 addr: fe80::fc54:ff:fe1b:6af/64 Scope:Link
  33.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  34.           RX packets:38088 errors:0 dropped:0 overruns:0 frame:0
  35.           TX packets:70276 errors:0 dropped:0 overruns:0 carrier:0
  36.           collisions:0 txqueuelen:500
  37.           RX bytes:2713497 (2.5 MiB)  TX bytes:100265996 (95.6 MiB)
复制代码
补充:
虚拟机可以上网, 并以NAT方式连接网络
虚拟机通过宿主的virbr0 (192.168.122.1) 作为网关联网
虚拟机可以与宿主直连(ip访问) 虚拟机 192.168.122.x段其他虚拟机也可相互访问

论坛徽章:
17
巨蟹座
日期:2014-11-20 23:04:5215-16赛季CBA联赛之北控
日期:2018-08-01 16:08:4015-16赛季CBA联赛之浙江
日期:2017-12-08 11:25:2415-16赛季CBA联赛之四川
日期:2016-11-21 00:16:50操作系统版块每日发帖之星
日期:2016-07-28 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-25 15:36:04操作系统版块每日发帖之星
日期:2016-02-12 06:20:002015亚冠之西悉尼流浪者
日期:2015-08-28 14:48:322015亚冠之平阳省
日期:2015-08-19 14:54:162015亚冠之武里南联
日期:2015-07-07 10:49:112015亚冠之城南
日期:2015-06-22 10:15:002015亚冠之山东鲁能
日期:2015-06-18 18:03:44
2 [报告]
发表于 2015-06-05 11:20 |只看该作者
做个DNAT端口映射

论坛徽章:
0
3 [报告]
发表于 2015-06-05 11:22 |只看该作者
回复 2# yyu0378


    DNAT做了的 在iptables 规则中第41行

论坛徽章:
17
巨蟹座
日期:2014-11-20 23:04:5215-16赛季CBA联赛之北控
日期:2018-08-01 16:08:4015-16赛季CBA联赛之浙江
日期:2017-12-08 11:25:2415-16赛季CBA联赛之四川
日期:2016-11-21 00:16:50操作系统版块每日发帖之星
日期:2016-07-28 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-25 15:36:04操作系统版块每日发帖之星
日期:2016-02-12 06:20:002015亚冠之西悉尼流浪者
日期:2015-08-28 14:48:322015亚冠之平阳省
日期:2015-08-19 14:54:162015亚冠之武里南联
日期:2015-07-07 10:49:112015亚冠之城南
日期:2015-06-22 10:15:002015亚冠之山东鲁能
日期:2015-06-18 18:03:44
4 [报告]
发表于 2015-06-05 11:26 |只看该作者
回复 3# jomcal
122.57这个主机的默认网关是啥?


   

论坛徽章:
0
5 [报告]
发表于 2015-06-05 11:28 |只看该作者
回复 4# yyu0378

这个完整ip是 192.168.122.57   网关是192.168.122.1
   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
6 [报告]
发表于 2015-06-05 11:34 |只看该作者
  1. echo 1 > /proc/sys/net/ipv4/ip_forward
  2. iptables -F
  3. iptables -X
  4. iptables -t nat -F
  5. iptables -t nat -X
  6. iptables -t nat -A PREROUTING -d 192.168.137.41/32 -p tcp --dport 8022 -j DNAT --to-destination 192.168.122.57:22
  7. iptables -t nat -A POSTROUTING -j MASQUERADE
复制代码
在宿主机执行以上操作,看看能否解决问题,如果不能再重启iptables恢复你原来的规则。

论坛徽章:
0
7 [报告]
发表于 2015-06-05 11:45 |只看该作者
本帖最后由 jomcal 于 2015-06-05 11:48 编辑

回复 6# yestreenstars


首先 转发是开启的 否则kvm虚拟机无法上网
另外,这种方法确实可以端口映射
可端口防火墙没了.

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2015-06-05 11:54 |只看该作者
回复 7# jomcal

可以映射那就在此基础上加上其他链的规则咯
   

论坛徽章:
0
9 [报告]
发表于 2015-06-05 11:58 |只看该作者
回复 8# yestreenstars


    非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP