Ubuntu 设置NAT共享网络(命令行方法)
2017-07-04 09:58
513 查看
Ubuntu 设置NAT共享网络(命令行方法)
本文介绍如何使用iptables来实现NAT转发,事实上就是将一台机器作为网关(gateway)来使用。我们假设充当网关的机器至少有网卡eth0和eth1,使用eth0表示连接到外网的网卡,使用eth1表示连接到内网交换机上的网卡,内部子网为10.0.0.0,通过NAT机制,内网中的机器可以通过网关机器访问Internet,而不需要额外的公网IP。本文中的配置值需要根据具体环境适当更改。
一、Gateway端
1. 给内网网卡配置静态IP(此前确保另一张外网网卡eth0已经能够正常访问Internet。已经为eth1配置过内网静态IP的可以跳过本步)
sudo ip addr add 10.0.0.11/24 dev eth1
这里假设eth1的IP为10.0.0.11,。
2. 配置NAT规则
sudo iptables -A FORWARD -o eth0 -i eth1 -s 10.0.0.0/24 -m conntrack --ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -t nat -F POSTROUTING sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
第一条规则允许转发初始网络包,第二条规则允许转发已经建立连接后的网络包,第三条则设置NAT。
接下来需要保存iptables规则,确保每次重启时能够加载NAT规则:
2.1 保存iptables规则
sudo iptables-save | sudo tee /etc/iptables.sav
2.2 编辑/etc/rc.local文件,将下面的一行添加到“exit 0”之前:
iptables-restore < /etc/iptables.sav
这样以后每次重启机器时都会自动加载NAT相关的iptables规则。
3 启用路由转发,编辑/etc/sysctl.conf 文件,删除起始的“#”,解除
#net.ipv4.ip_forward=1
的注释。然后使其生效:
sudo sysctl -p
这样我们就完成了网关一端的设置。
二、Client端
一旦网关机器设置完成,任何OS的客户端都能够通过连接到网关而访问外部网络。这里以Ubuntu Server作为client为例,假设client的eth0连接到网关eth1所在的内网10.0.0.0上,
1. 为eth0指派静态IP(需与server端的eth1在同一网段,如果已经配置过则可以跳过本步),编辑/etc/network/interfaces文件:
auto eth0 iface eth0 inet static address 10.0.0.31 netmask 255.255.255.0 gateway 10.0.0.11 dns-nameservers YourDNSServer
因为我们的网关服务端并没有充当DNS服务器,此处需要额外指定client的DNS服务器,通常从网络服务提供商(ISP)那里获得。
2. 接下来配置路由网关
sudo route add default gw 10.0.0.11 dev eth0
使网关配置生效,如果以前已经生成过/etc/resolv.conf文件中的nameserver字段,那么这时client应该已经能够访问外部网络了,否则需要编辑/etc/resolv.conf,添加字段:
nameserver YourDNSServer
由于在/etc/network/interfaces文件中已经配置过dns-nameservers,所以重新启动client机器时不会影响DNS配置。
此时client已经能够通过网关机器访问外网,如果不知道ISP的DNS服务器地址,可以使用OpenDNS作为替代。
三、高级Gateway配置
可以为gateway机器配置DHCP和DNS服务器功能,从而简化客户端机器的联网配置,同时省却为client配置DNS的过程;
1. 安装dnsmasq
sudo aptitude install dnsmasq
2. 备份dnsmasq的配置文件以备参考
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf-backup
3. 编辑dnsmasq的配置文件/etc/dnsmasq.conf,添加下面两行:
interface=eth1 dhcp-range=10.0.0.100,10.0.0.250,72h
注意这是为gateway机器配置DHCP/DNS,interface字段需要设为该机器连接到内网的那个网卡,同时DHCP的IP池应该在我们之前配置的那个网段中。
4. 重启dnsmasq服务
sudo /etc/init.d/dnsmasq restart
这样client端就能够获取动态IP和自动解析域名了。
相关文章推荐
- Ubuntu 设置NAT共享网络(命令行方法)
- 虚拟机中Ubuntu中设置于主机共享网络连接
- Debian命令行下网络参数设置的方法
- Ubuntu Vmware使用 nat 设置网络【实践版,有图】
- win7自带wifi win7无线网络共享设置图文方法
- virtualbox加载ubuntu,网络如何设置?选择nat还是桥接?
- 简单化:win7自带wifi win7无线网络共享设置图文方法(网上的,比较细)
- Ubuntu下apt-get的网络代理设置(终端命令行的网络代理设置)
- Ubuntu 12.04使任何用户都有设置图形网络权限的方法
- Ubuntu设置Static IP的方法Ifconfig网络配置工具详解
- ubuntu 自添加开机启动程序(一种使ethtool设置永久保存在网络设备中的曲线救国方法) 转自:http://www.groad.net/bbs/read.php?tid-1393.html
- Vmware下Ubuntu NAT网络连接方式设置
- VMware+Ubuntu+NAT 网络设置
- VMware虚拟机中nat网络模式的设置方法
- VMware Workstation 12 Player+Ubuntu 16.04环境下设置共享文件夹的方法
- Ubuntu 命令行修改网络配置方法
- 新版VirtualBox设置Ubuntu与windows共享文件夹的方法
- 使用VirtualBox在Ubuntu下虚拟Windows XP共享文件夹设置方法(亲测)
- 关于虚拟机下的ubuntu访问windows xp共享文件,设置密码访问的方法