环境介绍

有一个KVM宿主机,一个外网IP绑定在了宿主服务器上,但是希望直接用ssh访问上面的所有虚拟机,还想虚拟机提供外网服务,

解决方法如下:

环境为RHEL6.3,外网IP为 61.155.xx.xxx

1.网络方式使用NAT连接

修改配置文件/etc/libvirt/qemu/networks/default.xml;
查看网络配置文件,下面的是默认情况
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 .5254005aa781 yes virbr0-nic

如果需要修改的话,可以直接修改或者创建新的文件,然后使用下面命令来创建新的网络

virsh net-define 【filename】

2.安装VM

virt-install --name linux-nat --ram 2048 --disk /data/linux.nat.raw --graphics vnc,port=5902 --network network=default,model=virtio--vcpus=8--os-variant=rhel6 --import

# /data/linux.nat.raw 这个是做好的Linux系统模版

3.查看宿主服务器virbr0的网卡信息

ifconfig virbr0
virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
link/ether :::5a:a7: brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/ brd 192.168.122.255 scope global virbr0

进入虚拟机中,修改IP为192.168.122.2,网关为192.168.122.1

4.配置iptables

实现的原理是用户访问宿主IP的8000端口,然后iptables转发这个包到虚拟机的22端口上
# iptables -A INPUT -p tcp --dport  -j ACCEPT
# iptables -t nat -A PREROUTING -d 61.155.xx.xxx -p tcp -m tcp --dport -j DNAT --to-destination 192.168.122.2:
# iptables -t nat -A POSTROUTING -s 192.168.122.0/255.255.255.0 -d 192.168.122.2 -p tcp -m tcp --dport -j SNAT --to-source 192.168.122.1

KVM虚拟机使用NAT+iptables做端口映射的更多相关文章

  1. linux下用用iptables做端口映射的shell

    情形一:跨网络.跨主机的映射Full-Nat 我们想到达主机B的80端口,但是由于网络限制可能无法直接完成.但是我们可以到达主机A的8080端口,而主机A可以直接到达B的80端口.这时候可以使用ipt ...

  2. centos7 && centos6.5部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发

    centos7 && centos6.5 部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发 一.准备工作: 1: 检查kvm ...

  3. [VirtualBox] 1、NAT模式下端口映射

    1.VirtualBox中有4中网络连接方式 VirtualBox中有4中网络连接方式:NAT.Bridged Adapter.Internal.Host-only Adapter,VMWare中有三 ...

  4. CentOS 下做端口映射/端口转发

    CentOS 下做端口映射/端口转发==[实现目标]==================[服务器A]有2块网卡,一块接内网,一块接外网,[服务器B]只有一块内网网卡:访问[服务器A]的7890端口跳转 ...

  5. iptables实现端口映射(本地和远程端口映射)

    说明:需要将外网访问本地IP(192.168.75.5)的80端口转换为访问192.168.75.3的8000端口,这就需要用到iptables的端口映射 实现:1. 需要先开启linux的数据转发功 ...

  6. 使用iptables做端口转发

    通过iptables可以做转发 #!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ ...

  7. iptables做端口转发

    一.用iptables做本机端口转发 比如80端口转8080端口 代码如下:   iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT ...

  8. Cisco基础(五):配置静态NAT、配置端口映射、配置动态NAT、PAT配置、办公区Internet的访问

    一.配置静态NAT 目标: 随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘.事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地 ...

  9. VMware NAT做端口映射

    转自百度 原文地址: https://jingyan.baidu.com/article/c35dbcb0d1ff248916fcbc0d.html 注意事项:Window宿主电脑要调整防火墙.

随机推荐

  1. 全网最全Docker命令详解

    由于最近在学习Docker,在这里把有关Docker的命令做一个集合,方便后面查看: # docker --help Usage: docker [OPTIONS] COMMAND [arg...] ...

  2. oracle 查询表及字段结构

    select --*tcl.column_name,cc.comments col_comments,data_type,case data_type when 'NUMBER' then '('|| ...

  3. 强连通 反向建图 hdu3639

    Hawk-and-Chicken Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. Class basic syntax

    Class basic syntax Wikipedia In object-oriented programming, a class is an extensible program-code-t ...

  5. html浏览器高度和宽度和其他dom获取

    1.获取网页可见区域的宽度:document.body.clientWidth ; 2.获取网页可见区域的高度:document.body.clientHeight; 3.获取 网页可见区域宽:doc ...

  6. 阿里短信回持.net sdk的bug导致生产服务cpu 100%排查

    一:背景 1. 讲故事 去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的.net sdk. 网址:https://help.aliyun.com/documen ...

  7. web自动化之文件上传操作

    #!/usr/bin/python3 # -*- coding: utf-8 -*- #Author: xiaojian #Time: 2018/11/16 20:49 import win32gui ...

  8. ansible模块详解

    [简单介绍] Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 有以下两个特性: 模块化:通过调用相关模块,完成指定任务,且 ...

  9. rocketmq初识

    概念说明 通常一个消息队列需要掌握的知识点有Topic(主体).Producer(生产者).Consumer(消费者).Queue(队列).Delivery Semantics(消息传递范式) 蛋疼的 ...

  10. 【Linux】将javaweb项目部署到CentOS的tomcat上

    1.将项目打包成war包 build之后war文件就生成了. 2.拷贝war文件到CentOS的tomcat的项目文件夹中 用WinSCP将文件粘帖进这个文件夹中 /wocloud/tomcat_cl ...