linux如何配置NAT?

linux如何配置NAT?,第1张

1. 配置IP地址

1.1 正确配置学校分配的IP使能正常上网

1) 按学校分配的IP地址配置好Linux主机

[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

| DEVICE=eth0 |

| BOOTPROTO=none |

| HWADDR=00:1E:90:13:E0:25 |

| IPADDR=10.3.10.19|

| NETMASK=255.255.255.0|

| GATEWAY=10.3.10.254 |

| ONBOOT=yes |

| TYPE=Ethernet|

| DNS1=211.64.120.2|

| DEFROUTE=yes |

| DOMAIN=168.96.1.1|

2) 重起网卡

[~]# servie network restart

note: 经过以上的配置, Linux主机应该能够正常上网了!

1.2 新增eth0别名设备eth0:0

[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0

| # eth0:0 必须要用''括起来: 'eth0:0' |

| DEVICE='eth0:0'|

| ONBOOT=yes |

| BOOTPROTO=static |

| IPADDR=192.168.50.1|

| NETMASK=255.255.255.0 |

| USERCTL=no |

1.3 配置后 查看一下是否配置成功:

[~]# ifconfig

| eth0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |

| inet addr:10.3.10.19 Bcast:10.3.10.255 Mask:255.255.255.0 |

| inet6 addr: fe80::21e:90ff:fe13:e025/64 Scope:Link|

| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1|

| RX packets:187685 errors:0 dropped:0 overruns:0 frame:0 |

| TX packets:137327 errors:0 dropped:0 overruns:0 carrier:0 |

| collisions:0 txqueuelen:1000 |

| RX bytes:134816893 (128.5 MiB) TX bytes:56066393 (53.4 MiB) |

| Interrupt:27 Base address:0xa000 |

| eth0:0Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |

| inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0 |

| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1|

| Interrupt:27 Base address:0xa000 |

2. 配置路由

由于在配置网卡接口时, 已自动配置一定的路由, 所以我们只需查看一下其信息, 验证其

是否已经被正确配置:

[root ~]$ route

Kernel IP routing table

Destination Gateway Genmask Flags Metric RefUse Iface

192.168.50.0* 255.255.255.0 U 0 00 eth0

10.3.10.0 * 255.255.255.0 U 1 00 eth0

link-local * 255.255.0.0 U 1002 00 eth0

default 10.3.10.254 0.0.0.0 UG0 00 eth0

3. 配置NAT

1) 新建nat.sh脚本文件并保存在 /usr/local/nat/ 目录下:

[~]# cat /usr/local/nat/nat.sh

| #!/bin/bash |

| # 0. 设定你的参数值|

| EXIF='eth0' # 这个是对外的网卡接口, 可能是'ppp0'等 |

| EXNET='192.168.50.0/24' # 这个是对内的网段|

| # 底下如无需要, 请不要改动了! |

| # 1. 启动routing等 |

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

| /sbin/iptables -F |

| /sbin/iptables -X |

| /sbin/iptables -Z |

| /sbin/iptables -F -t nat |

| /sbin/iptables -X -t nat |

| /sbin/iptables -Z -t nat |

| /sbin/iptables -P INPUT ACCEPT |

| /sbin/iptables -P OUTPUT ACCEPT |

| /sbin/iptables -P FORWARD ACCEPT |

| /sbin/iptables -t nat -P PREROUTING ACCEPT|

| /sbin/iptables -t nat -P POSTROUTING ACCEPT |

| /sbin/iptables -t nat -P OUTPUT ACCEPT|

| # 2. 载入模组 |

| /sbin/modprobe ip_tables 2>/dev/null |

| /sbin/modprobe ip_nat_ftp 2>/dev/null|

| /sbin/modprobe ip_nat_irc 2>/dev/null|

| /sbin/modprobe ip_conntrack 2>/dev/null |

| /sbin/modprobe ip_conntrack_ftp 2>/dev/null |

| /sbin/modprobe ip_conntrack_irc 2>/dev/null |

| # 3. 启动ip伪装 |

| /sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE |

2) 增加可执行权限

[~]# chmod +x /usr/local/nat/nat.sh

4. 大功告成

1) Linux主机配置完成, 现在只需重新启动一下刚才的配置:

[~]# servie network restart

[~]# /usr/local/nat/nat.sh

2) 为了使得开机即可运行, 可在 /etc/rc.d/rc.local 文件加入相应的命令:

[~]# echo "/usr/local/nat/nat.sh" >>/etc/rc.d/rc.local

5. 配置客户机(可以是windows或linux等其它系统)

1. network 设定需要为: 192.168.50.0

2. broadcast 设定需要为: 192.168.50.255

3. netmask 设定需要为 255.255.255.0

4. IP 设定需要为 192.168.50.1 ~ 192.168.50.254 之一, 且『不能重复』

5. Gateway 或者要设定为你的 Linux 的对内 IP , 以我的例子来说, 就是

192.168.50.1

6. DNS 的设定: 这个最容易出错了, DNS 设定需要是 ISP 给你的 DNS

IP, 如果不知道的话, 可以填入 168.95.1.1 或者是

139.175.10.20 这一个 SeedNet 的 DNS 即可!千万不要设定为 192.168.1.2

1. 配置IP地址1.1 正确配置学校分配的IP使能正常上网1) 按学校分配的IP地址配置好Linux主机[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none HWADDR=00:1E:90:13:E0:25 IPADDR=10.3.10.19 NETMASK=255.255.255.0 GATEWAY=10.3.10.254 ONBOOT=yes TYPE=Ethernet DNS1=211.64.120.2 DEFROUTE=yes DOMAIN=168.96.1.12) 重起网卡[~]# servie network restartnote: 经过以上的配置, Linux主机应该能够正常上网了!1.2 新增eth0别名设备eth0:0[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0 # eth0:0 必须要用''括起来: 'eth0:0' DEVICE='eth0:0' ONBOOT=yes BOOTPROTO=static IPADDR=192.168.50.1 NETMASK=255.255.255.0 USERCTL=no 1.3 配置后 查看一下是否配置成功:[~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 inet addr:10.3.10.19 Bcast:10.3.10.255 Mask:255.255.255.0 inet6 addr: fe80::21e:90ff:fe13:e025/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:187685 errors:0 dropped:0 overruns:0 frame:0 TX packets:137327 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:134816893 (128.5 MiB) TX bytes:56066393 (53.4 MiB) Interrupt:27 Base address:0xa000 eth0:0Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 Interrupt:27 Base address:0xa000 2. 配置路由由于在配置网卡接口时, 已自动配置一定的路由, 所以我们只需查看一下其信息, 验证其是否已经被正确配置:[root ~]$ route Kernel IP routing table Destination Gateway Genmask Flags Metric RefUse Iface 192.168.50.0* 255.255.255.0 U 0 00 eth0 10.3.10.0 * 255.255.255.0 U 1 00 eth0 link-local * 255.255.0.0 U 1002 00 eth0 default 10.3.10.254 0.0.0.0 UG0 00 eth03. 配置NAT1) 新建nat.sh脚本文件并保存在 /usr/local/nat/ 目录下:[~]# cat /usr/local/nat/nat.sh #!/bin/bash # 0. 设定你的参数值 EXIF='eth0' # 这个是对外的网卡接口, 可能是'ppp0'等 EXNET='192.168.50.0/24' # 这个是对内的网段 # 底下如无需要, 请不要改动了! # 1. 启动routing等 echo 1 >/proc/sys/net/ipv4/ip_forward /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z /sbin/iptables -F -t nat /sbin/iptables -X -t nat /sbin/iptables -Z -t nat /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -t nat -P OUTPUT ACCEPT # 2. 载入模组 /sbin/modprobe ip_tables 2>/dev/null /sbin/modprobe ip_nat_ftp 2>/dev/null /sbin/modprobe ip_nat_irc 2>/dev/null /sbin/modprobe ip_conntrack 2>/dev/null /sbin/modprobe ip_conntrack_ftp 2>/dev/null /sbin/modprobe ip_conntrack_irc 2>/dev/null # 3. 启动ip伪装 /sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE 2) 增加可执行权限[~]# chmod +x /usr/local/nat/nat.sh4. 大功告成1) Linux主机配置完成, 现在只需重新启动一下刚才的配置:[~]# servie network restart[~]# /usr/local/nat/nat.sh2) 为了使得开机即可运行, 可在 /etc/rc.d/rc.local 文件加入相应的命令:[~]# echo "/usr/local/nat/nat.sh" >>/etc/rc.d/rc.local5. 配置客户机(可以是windows或linux等其它系统)1. network 设定需要为: 192.168.50.02. broadcast 设定需要为: 192.168.50.2553. netmask 设定需要为 255.255.255.04. IP 设定需要为 192.168.50.1 ~ 192.168.50.254 之一, 且『不能重复』5. Gateway 或者要设定为你的 Linux 的对内 IP , 以我的例子来说, 就是192.168.50.16. DNS 的设定: 这个最容易出错了, DNS 设定需要是 ISP 给你的 DNSIP, 如果不知道的话, 可以填入 168.95.1.1 或者是139.175.10.20 这一个 SeedNet 的 DNS 即可!千万不要设定为 192.168.1.2

-t 指定命令要 *** 作的匹配包的表

-A 是新增的意思

-s 用来比对封包的来源 IP

-j 指定规则的目标

-A 后面的选项有INPUT OUTPUT FORWARD

这句话的意思是:更改所有来自10.50.10.0/24的数据包的源ip地址为192.168.79.129


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7574611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存