Linux下配置NAT伺服器共用上網 content: 0. 本次配置的網路的拓撲結構: 1. 配置IP地址 . 1.1 正確配置學校分配的IP使能正常上網 . 1.2 新增eth0別名裝置eth0:0 . 1.3 配置後 查看一下是否配置成功: 2. 配置路由 3. 配置NAT 4. 大功告成 5. 配置客戶機 (可以是windows或linux等其它系統) 0. 本次配置的網路的拓撲結構: # # | # | # ========+=============== # |10.3.10.0/24 # | # | # |10.3.10.19 # +----+----+ +-------+ +-------+ # | | | | | | # | linux | | win1 | | win2 | # | (NAT) | | | | | # +----+----+ +---+---+ +---+---+ # |192.168.50.1 |192.168.50.2 |192.168.50.3 # | | | # | | | # | | | # ==========+=====================+================+============ # 192.168.50.0/24 # # 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 之一, 且『不能重複』 5. Gateway 或者要設定為你的 Linux 的對內 IP , 以我的例子來說, 就是 192.168.50.1 6. DNS 的設定: 這個最容易出錯了, 你的 DNS 設定需要是你的 ISP 給你的 DNS IP, 如果你不知道的話, 可以填入 168.95.1.1 這一個中華電信的 DNS 或者是 139.175.10.20 這一個 SeedNet 的 DNS 即可!千萬不要設定為 192.168.1.2 呦!會 連不出去!