配置双网卡网络接口eth0eth1,并在服务器上配置NAT(网络地址转换),在公网ip和内部网私有ip地址间配置静态NAT重定向数据包,使服务器成为透明网关从而使得内部网计算机可以无障碍访问外部互联网。

关键词:Redhat LinuxDNS(域名解析服务器);NAT(网络地址转换);iptables规则

步骤:

Step1配置两块网卡的接口地址

设置第一块网卡eth0IP地址和子网掩码:

# ifconfig eth0 202.38.75.7 netmask 255.255.255.0 up

修改/etc/sysconfig/network-scripts/ifcfg-eth0文件的内容如下:

DEVICE=eth0

BOOTPROTO=none

BROADCAST=202.38.75.255

IPADDR=202.38.75.7

NETMASK=255.255.255.0

NETWORK=202.38.75.0

ONBOOT=yes

USERCTL=no

PEERDNS=no

TYPE=Ethernet

GATEWAY=202.38.75.254

设置第二块网卡eth1IP地址和子网掩码:

# ifconfig eth0 192.18.75.209 netmask 255.255.255.0 up

修改/etc/sysconfig/network-scripts/ifcfg-eth0文件的内容如下:

DEVICE=eth1

BOOTPROTO=none

BROADCAST=192.168.75.223

IPADDR=192.168.75.209

NETMASK=255.255.255.240

NETWORK=192.168.75.0

ONBOOT=yes

USERCTL=no

PEERDNS=no

TYPE=Ethernet

Step2使用route命令设置路由表

设置第一块网卡eth0的路由表:

# route add -net 202.38.75.0 netmask 255.255.255.0 dev eth0

设置第二块网卡eth1的路由表:

# route add -net 192.168.75.0 netmask 255.255.255.0 dev eth1

使用route命令来观察路由情况:

# route

Kernel IP routing table

Destination    Gateway         Genmask         Flags Metric Ref   Use Iface

202.38.75.0    *               255.255.255.0   U     0      0        0 eth0

192.168.75.0   *               255.255.255.0   U     0      0        0 eth1

127.0.0.0      *               255.0.0.0       U     0      0        0 lo

Step3配置DNSDomain Name Sever域名解析服务器)服务器地址

配置主机使用的DNS服务器:编辑/etc/resolv.conf文件,内容为:nameserver 202.38.64.1,这指定了DNS服务器的地址。最多可以写三个地址,作为前一个失败时的候选DNS服务器。

#vi /etc/resolv.conf

nameserver 202.38.64.1

Step4重启并测试network服务

完成网络配置后,用下面命令重启network服务:

# service network restart

正在关闭接口 eth0                                             [确定]

正在关闭接口 eth1                                             [确定]

关闭环回接口:                                            [确定]

禁用 IPv4包转送:                                              [确定]

设置网络参数:                                            [确定]

弹出环回接口:                                            [确定]

弹出界面 eth0                                           [确定]

弹出界面 eth1                                           [确定]

测试内网机器与服务器网络接口eth1

在内网机器上ping服务器:

#ping 192.168.75.209

如果ping通,说明eth1网络接口没有问题。

测试服务器对外网络接口eth0

在服务器上ping外部网络,比如DNS服务器ip地址:

#ping 202.38.64.1(科大的DNS服务器)

如果ping通,说明eth0网络接口以及DNS服务器设置没有问题。

Step5在服务器上配置NAT

使用NAT就可以转换数据包的源地址(SNAT)或者目的地址(DNAT)。

DNAT操作主要用在这样一种情况,你有一个合法的IP地址,要把对防火墙的访问重定向到其他的机子上。也就是说,我们改变的是目的地址,以使包能重路由到某台主机。

SNAT改变包的源地址,这在极大程度上可以隐藏你的本地网络等。一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址。有了这个操作,防火墙就能自动地对包做SNATDe-SNAT(就是反向的SNAT),以使LAN能连接到Internet。如果使用类似 192.168.0.0/24这样的地址,是不会从Internet得到任何回应的。因为IANA定义这些网络(还有其他的)为私有的,只能用于LAN内部。

我们这里的情况就属于SNAT的应用。因为内部网络使用192.168.75.0/24这样的私有ip,直接使用这类ip地址是无法访问外部Internet网络ip的(如202.38.75.7)。通过添加iptables路由规则,将来自内部局域网机器的数据包重定向,改变其源地址为服务器ip地址,才可以使内网机器顺利访问外部网络。从这个角度来看,服务器提供NAT服务后就像一个透明网关,使内外网机器无障碍连通。

设置方法如下:

/etc路径下建立natstat脚本文件:

#vi /etc/natstat

内容设置为:

#!/bin/bash

#检查需要的模块是否正常工作

echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/modprobe ip_tables

/sbin/modprobe ip_nat_ftp

/sbin/modprobe iptable_nat

#设置SNAT规则

/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.75.0/24 -j SNAT --to-source 202.38.75.7

然后保存脚本文件,并设置natstat文件访问权限为“可执行”,并执行此脚本

#cd /etc

#chmod +x natstat

#./natstat

最后,在/etc/rc.local中添加开机自动启动NAT的脚本:

#vi /etc/rc.local(注:不同系统可能有所区别,可能是/etc/rc.d/rc.local,也可能是/etc/rc.conf)

在其中添加如下脚本:

/etc/natstat

保存文件,退出。

这样就在网关服务器上配置好了NAT服务,内网机器应该可以访问外部网络了。

在内网机器上尝试ping外网ip

#ping 202.38.64.1DNS服务器)

如能ping通,则说明设置成功。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐