海田1 发表于 2024-9-11 18:11:02

Linux系统怎么设置双网卡?教程如下

 Linux系统配置双网卡网络接口eth0和eth1,并在服务器上配置NAT(网络地址转换),在公网ip和内部网私有ip地址间配置静态NAT重定向数据包,使服务器成为透明网关从而使得内部网计算机可以无障碍访问外部互联网。
  关键词:Redhat Linux;DNS(域名解析服务器);NAT(网络地址转换);iptables规则
  步骤:
  Step1配置两块网卡的接口地址
  设置第一块网卡eth0的IP地址和子网掩码:
  # 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
  设置第二块网卡eth1的IP地址和子网掩码:
  # 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配置DNS(Domain 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改变包的源地址,这在极大程度上可以隐藏你的本地网络等。一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址。有了这个操作,防火墙就能自动地对包做SNAT和De-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
  保存文件,退出。
页: [1]
查看完整版本: Linux系统怎么设置双网卡?教程如下