目录

  • ​​目录​​
  • ​Linux网络配置​
  • ​​ifconfig命令​​
  • ​Linux网络配置文件​
  • ​​网卡信息文件​​
  • ​​主机名文件​​
  • ​​DNS配置文件​​
  • ​VMWare中Linux的网络参数配置​
  • ​​VMWare桥接模式下配置静态IP​​
  • ​Linux网络命令​
  • ​​网络环境操作​​
  • ​​网络测试命令​​


Linux网络配置

  在Linux中配置IP地址的方法有以下这么几种:

  • 图形界面配置IP地址(操作方式如Windows系统配置IP,但在实际生产中,我们并不建议在我们的服务器上安装Linux的图形界面,因为安装了图形界面将一定程度地影响了服务器的安全性和稳定性,因此,在这里就不对该方式进行详细的介绍了。)
  • ​ifconfig​​命令临时配置IP地址(临时配置IP地址,即当我们重启计算机或重启网络服务后,配置将失效)
  • ​setup​​​工具永久配置IP地址(​​setup​​​工具是由​​Red Hat​​​开发的,因此在正常情况下,该工具只能用于​​Red Hat​​​系列的Linux系统)(​​setup​​​工具——红帽专有图形化工具​​setup​​​设置IP地址)(使用setup命令设置完网络后需要使用​​service network restart​​重启网络)
  • 修改网络配置文件

ifconfig命令

  ​​ifconfig​​命令可以查看与配置网络状态。命令结果如下:

eth0      Link encap:Ethernet  HWaddr 00:0C:29:11:30:39  
inet addr:192.168.134.129 Bcast:192.168.134.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe11:3039/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19731 errors:0 dropped:0 overruns:0 frame:0
TX packets:502 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1248492 (1.1 MiB) TX bytes:58905 (57.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

(​​lo​​​表示本地回环网卡的信息)
  使用​​​ifconfig​​命令还可以临时设置某一网卡的IP地址和子网掩码。如:

ifconfig eth0 192.168.0.200 netmask 255.255.255.0

Linux网络配置文件

网卡信息文件

  查看第一张网卡的网卡信息:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

  信息如下:

DEVICE=eth0
HWADDR=00:0C:29:11:30:39
TYPE=Ethernet
UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

  更多信息说明,如下表格:

配置

说明

​DEVICE=eth0​

网卡设备名,eth0表示第一张网卡

​BOOTPROTO=none​

是否自动获取IP(none、static、dhcp),当值为dhcp时,只需配置上述例子中的那几项就可以联网

​HWADDR=00:0C:29:11:30:39​

MAC地址

​NM_CONTROLLED=yes​

是否可以由Network Manager图形管理工具托管

​ONBOOT=yes​

是否随网络服务启动当前网卡生效(在CentOS 6 以上的版本中ONBOOT是默认关闭的。

​TYPE=Ethernet​

网络类型,这里为以太网

​UUID=5ab36190-a5df-4bf1-94d8-6c126afd05f1​

唯一识别码

​IPADDR=192.168.0.200​

IP地址

​NETMASK=255.255.255.0​

子网掩码

​GATEWAY=192.168.0.1​

网关

​DNS1=202.106.0.20​

DNS

​IPV6INIT=no​

IPv6是否启用,这里设置为不启用

​USERCTL=no​

是否允许非root用户控制此网卡,这里为不允许

说明:
1.自动获取IP的条件是:必须在局域网内存在DHCP服务器。
2.相同UUID网络配置的计算机会导致互相不能上网。

主机名文件

  查看主机名文件:

vi /etc/sysconfig/network

  内容如下:

NETWORKING=yes
HOSTNAME=localhost.localdomain

  其中:
1. ​​​/etc/sysconfig/network​​​该文件中​​NETWORKING=no​​​时主机将无法连接网络。
2. Windows下,在同一局域网内相同主机名之间是不能进行传递的。要求在局域网内是不能有相同主机名的主机的。而在Linux中局域网内是可以有相同主机名的主机的,如默认主机名:​​​localhost.localdomain​​​。
3. 修改​​​/etc/sysconfig/network​​​文件中的主机名后需要重启计算机才能生效。使用​​hostname 主机名​​​命令可以临时更改主机名后,重启计算机后将失效。通过​​hostname​​命令可以查看当前主机名。

DNS配置文件

  查看DNS配置文件:

vi /etc/resolv.conf

  内容如下:

; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.134.2

  其中最重要的是​​nameserver​​​这一项,设置的是域名服务器的地址,多个域名服务器,则在后续添加空格继续补充域名服务器的地址,或者另起一行做类似的​​nameserver​​配置。

VMWare中Linux的网络参数配置

(以CentOS为例)
1. 配置Linux IP地址;
2. CentOS 6以上的系统修改修改网络配置以启动网卡​​​vi /etc/sysconfig/network-scripts/ifcfg-eth0​​​将​​ONBOOT​​​选项的值修改为​​yes​​​,重启网络服务​​service network restart​​​;
3. 对于网络配置文件中UUID出现相同的情况,需要修改UUID的值,修改方式如下:

1. `vi /etc/sysconfig/network-scripts/ifcfg-eth0`,删除MAC地址行
2. `rm -rf /etc/udev/rules.d/70-persistent-net.rules`,删除网卡和MAC地址绑定文件
3. 重启当前系统

4.设置VMWare虚拟机的网络连接方式,选择桥接模式(可不勾选“复制物理网络连接状态”这一选项)(其中桥接模式,允许虚拟机访问外网,同时可以与局域网内的其他计算机进行通讯(包括本机);NAT模式,允许虚拟机访问外网,能与本机进行数据通讯,且能访问局域网内其他主机,但局域网内的其他主机不能访问该虚拟机;Host Only模式,默认情况下只能同本机进行通讯);
5. 修改桥接的网卡,在“虚拟网络编辑器”窗口中选择​​​VMnet0​​,修改桥接模式下桥接的网卡,这里选择可以上网的网卡。

VMWare桥接模式下配置静态IP

修改网卡配置文件,如下:

DEVICE=eth0
HWADDR=00:0C:29:FC:8D:E6
TYPE=Ethernet
#UUID=343b502d-2249-4e33-9187-9abc285b9292
UUID=31b6504c-7ddd-4b74-a51e-46cd34ed182d
ONBOOT=yes
NM_CONTROLLED=yes

#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=11.10.1.192
NETMASK=255.255.255.0
GATEWAY=10.8.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6INIT=no
USERCTL=no

重启网卡:

service network restart

  这里,ping外网地址会失败。使用​​route​​​命令发现,默认网关没有设置成功。原因不明(DHCP模式下,动态获取IP,默认网关​​10.8.8.1​​​设置成功,可以正常上网。)
  20180726,看到这样的文章《​​SIOCADDRT: No such process 添加路由报错​​》,才明白问题出在:“要添加的网关不在你主机所在的网段”,虚拟机默认使用的网关并非我想要设置的网关,我们需要手动进行设置。
  为配置静态IP的情况下,解决默认网关未设置成功的问题,使用route命令临时修改默认网关:
临时修改默认网关(重启虚拟机后失效)(​​​linux中配置网络出现 SIOCADDRT: No such process​​):

sudo route add 10.8.8.1/32 dev eth0
sudo route add default gw 10.8.8.1

以下方法未能测试通过
  永久修改默认网关的方式(防止重启失效,写入​​​/sbin/ifup-local​​,此文件要有执行权限):

vim /sbin/ifup-local

内容如下:

#!/bin/bash

if [ "$1" = "eth0" ]
then
# eth0为网卡名 如有vlan则填写ethx.xxx
sudo route add 10.8.8.1/32 dev eth0
sudo route add default gw 10.8.8.1
fi

以上方法未能测试通过

Linux网络命令

网络环境操作

  1. ​ifconfig​​​命令
      ​​​ifconfig​​:查看网络状态(能查看IP地址和子网掩码,但是不能查看网关和DNS地址),还可以临时设置某一网卡的IP地址和子网掩码。
  2. 关闭与启动网卡
      ​​​ifdown 网卡设备名​​​:禁用该网卡设备。
      ​​​ifup 网卡设备名​​:启用该网卡设备。
  3. 查询网络状态
      ​​​netstat 选项​​​(可以用于查看当前计算机开放的端口,从而判断当前计算机启动了哪些服务)
    选项:
-t:列出TCP协议端口
-u:列出UPD协议端口
-n:不使用域名和服务名,而使用IP地址和端口号
-l:仅列出在监听状态网络服务
-a:列出所有的网络连接
-r:列出路由列表,功能和route命令一只
常用组合:-tuln、-an、-rn
查看某一状态下的网络连接情况,如:netstat -an | grep ESTABLISHED
查看某一网络状态下的行数(查看有多少台计算机连接到当前服务器),如:netstat -an | grep ESTABLISHED | wc -l
netstat -rn 和 route -n 命令功能一样,结果一致。通过这样的命令查看当前计算机的网关地址。

(注:Linux中如何中止远程连接?使用​​logout​​​命令。在Windows中则操作菜单栏点击​​注销​​​。)
4. ​​​route​​​命令
  ​​​route -n​​​:查看路由列表(可以看到当前计算机的网关)。
  ​​​route add default gw 192.168.1.1​​​:临时设定网关。
  ​​​route del default gw 192.168.1.1​​​:删除设定的网关。
5. 域名解析命令
  ​​​nslookup [主机名或IP]​​:进行域名或IP地址的解析。

nslookup
> server
# 查看本机DNS服务器
> exit
# 退出

(注:CentOS 6.x后​​nslookup​​​已不存在,需要进行安装,参考:​​CentOS 6.x 安裝 nslookup 的步驟 (與 yum 如何查詢套件)​​​ 。在不想安装​​nslookup​​​的情况下,又想查看本机配置的DNS服务器地址,可以使用​​cat /etc/resolv.conf​​命令。)

网络测试命令

  1. ​ping​​​命令
      ​​​ping [选项] ip或域名​​:探测指定IP或域名的网络状况。
选项:
-c 次数:指定ping发送包的次数

  2. ​​telnet​​​命令
  ​​​telnet [域名或IP] [端口]​​​:远程管理与端口探测命令。(​​telnet​​​的远程连接是极不安全的,它是明文传递数据,并未将数据加密。所以我们并不建议使用​​telnet​​​命令进行远程管理,但是我们可以通过该命令探测某个计算机中是否开放了某一端口。如:​​telnet 192.168.0.1 80​​​)
  3. ​​​traceroute​​​命令
  ​​​traceroute [选项] IP或域名​​:路由跟踪,查看访问某一IP或域名时经过的路由(路由路径)。(该命令可能需要单独安装)

选项:
-n 使用IP而不使用域名显示

  4. ​​wget​​​命令
  ​​​wget 下载地址​​​:下载命令。
  5. ​​​tcpdump​​​命令
  ​​​tcpdump​​​命令:用于监听某一网卡下某一服务的数据包接收情况(截获数据包-抓包)。如:​​tcpdump -i eth0 -nnX port 21​​。

选项:
-i 指定监听的网卡
-nn 将数据包中的域名与服务转为IP和端口显示
-X 以十六进制和ASCII码显示数据包内容
port 指定监听的端口