Linux下配置NAT伺服器共享上網

2021-06-17 16:54:51 字數 4184 閱讀 3827

content:

0. 本次配置的網路的拓撲結構:

1. 配置ip位址

. 1.1 正確配置學校分配的ip使能正常上網

. 1.2 新增eth0別名裝置eth0:0

. 1.3 配置後 檢視一下是否配置成功:

2. 配置路由

3. 配置nat

4. 大功告成

5. 配置客戶機 (可以是windows或linux等其它系統)

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:0 link 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 ref use iface

192.168.50.0 * 255.255.255.0 u 0 0 0 eth0

10.3.10.0 * 255.255.255.0 u 1 0 0 eth0

link-local * 255.255.0.0 u 1002 0 0 eth0

default 10.3.10.254 0.0.0.0 ug 0 0 0 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 之一, 且『不能重複』

我的例子來說, 就是192.168.50.1 !

linux下配置NAT服務

網路位址轉換 nat 是用於將乙個位址域 如 專用intra 對映到另乙個位址域 如 inter 的標準方法。nat允許乙個機構專用 intra 中的主機透明地連線到公共域中的主機,無需內部主機擁有註冊的 以及越來越缺乏的 inter 位址。inter 工程任務組意識到目前位址空間 即所謂的ipv4...

firewalld配置nat閘道器伺服器

需要 搭建yum倉庫 配置nat nginx或haproxy等實現 伺服器 操作在第一台上firewalld配置nat閘道器伺服器 root c7 41 systemctl start firewalld root c7 41 vim etc sysctl.conf root c7 41 egrep...

Linux下配置DHCP伺服器

redhat使用dhcpd程序提供dhcp服務,啟動時dhcpd自動讀它的配置檔案 etc dhcpd.conf。dhcpd將客戶的租用資訊儲存在 var lib dhcp dhcpd.leases檔案中,該檔案不斷被更新,從這裡面可以查到ip位址分配的情況。dhcpd為了向乙個子網提供服務,需要知...