Linux网络配置工具

Linux网络配置与网络工具

Linux网络简介

Linux的网络支持

Linux支持各种协议类型的网络:

  • TCP/IP、NetBIOS/NetBEUI、IPX/SPX、AppleTake
  • 在网络底层也支持Ethernet、Token Ring、ATM、PPP(PPPoE)、FDDI、Frame Relay等网络协议。

这些网络协议是Linux内核提供的功能,具体的支持情况由内核编译参数决定。

RHEL/CentOS的Linux内核默认支持上述的网络协议。

Linux的网络接口

Linux支持众多类型的网络接口

  • 每一个网络接口设备在Linux的内核中都有相应的设备名称

每一种网络接口设备(网络适配器)都需要相应的设备驱动程序

  • 网络接口设备的驱动程序被编译在系统内核
  • 或者被编译为系统内核模块以便让系统内核进行调用

RHEL/CentOS默认是采用内核模块(Module)的方式在系统引导时驱动网络接口的

  • 在**/lib/modules/$(uname -r)/kernel/drivers/net**目录下可以找到可加载的驱动可以从系统内核模块配置文件/etc/modprobe.conf中查看系统加载的网卡驱动模块
  • 可以从系统内核模块配置文件**/etc/modprobe.conf**中查看系统加载的网卡驱动模块
接口类型 接口名称 说明
以太网接口 ethX 是最常用的网络接口
令牌环接口 trX 只出现在少数纯IBM环境的网络中
光纤分布式数据接口 fddiX FDDI接口设备昂贵,通常用于核心网或高速网络中
点对点协议接口 pppX 用于Modem/ADSL拨号网络或基于PPTP协议的VPN等
本地回环接口 lo 用于支持UNIX Domain Socket技术的进程相互通信(IPC)

X是从0开始的整数。如:eth0代表第一块以太网卡,eth1代表第二块以太网卡等。

Linux的网络服务应用

Linux几乎支持Internet世界里所有的网络服务

  • WWW服务: Apache、Ngnix、Lighttpd
  • Email服务: Postfix、Qmail、Sendmail、Exim
  • Dovecot IMAP、Cyrus IMAP、Courier IMAP
  • FTP服务: Vsftpd、pure-ftpd、Proftpd 、Wu-ftpd
  • 文件共享服务:Samba、NFS
  • DNS服务:BIND
  • 目录服务:OpenLDAP
  • 数据库服务: PostgreSQL、MySQL、 Oracle
  • 远程登录与管理:OpenSSH、VNC

临时性配置网络参数

配置网络参数的方法

临时性网络配置

  • 通过命令修改当前内核中的网络相关参数实现
    • Ifconfig/ip、route、hostname、 sysctl -w
  • 配置后立即生效重新开机后失效

永久性网络配置

  • 通过直接修改网络相关的配置文件实现
  • 修改配置文件后,为了使之立即生效
    • 通过重新启动网络服务或指定的网络接口设备实现
    • 重新开机后保留所有配置

管理以太网接口

网络接口命名:eth0、eth1 等等

  • 使用别名(aliases),单个设备可具备多个地址
  • 别名被标识为(eth0:1,eth0:2)等等
  • 别名被当作单独的接口对待
  • 基于一块物理网卡的多个别名(包括物理网卡自身)只能有一个接口使用DHCP动态分配网络参数

查看网络接口配置

  • ifconfig [ethX]

网络接口的启用与停用

  • 使用 ifup ethX 命令来启用指定的接口
  • 使用 ifdown ethX 命令来禁用指定的接口

ifconfig 命令

ifconfig命令可以临时地设置网络接口的IP参数

格式:

ifconfig <网络接口> <IP地址>
[Mask <子网掩码>] [Broadcast <广播地址>]

当IP地址使用标准A、B、C类地址时,广播地址和子网掩码可以省略。

举例:

ifconfig eth0 10.0.0.10 Mask 255.255.255.0 Broadcast 10.0.0.255
ifconfig eth0 192.168.0.10
ifconfig eth0:0 192.168.1.10

查看Linux内核路由表

使用route命令,查看路由表。路由表可以包含:到主机的路由、到网络的路由、默认网关的路由。

route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.19.12 192.168.1.1 255.255.255.0 U 0 0 0 eth1
default localhost 0.0.0.0 UG 0 0 0 eth0

route命令

route命令可以临时地设置内核路由表

格式:

route add|del [-net|-host] <target [netmask Netmask]>
[gw Gateway] [[dev] Interface]

选项:

  • add或del:表示添加或删除路由
  • -net或-host:表示添加到主机或网络的路由
  • target:指定目标主机或网络地址,若目标为网络地址时,需使用 netmask 指定子网掩码
  • gw:用于指定网关的IP地址
  • dev:用于指定路由的网络接口(dev关键字可省略)

举例:

添加到主机的路由
route add -host 192.168.1.2 dev eth0:0
route add -host 10.20.30.148 gw 10.20.30.40
添加到网络的路由
route add -net 10.20.30.40 netmask 255.255.255.248 eth0
route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
route add -net 192.168.1.0/24 eth1
添加默认网关路由
route add default gw 192.168.1.1

删除到主机的路由
route del -host 192.168.1.2 dev eth0:0
route del -host 10.20.30.148 gw 10.20.30.40
删除到网络的路由
route del -net 10.20.30.40 netmask 255.255.255.248 eth0
route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
route del -net 192.168.1.0/24 eth1
删除默认网关路由
route del default gw 192.168.1.1

设置主机名和包转发

使用hostname命令可以临时地修改主机名

格式:

hostname <主机名>

例如:

hostname centos1.ls-al.loc

使用sysctl命令可以临时地开启内核的包转发

sysctl命令用于临时调整内核参数

开启内核的包转发功能使用如下命令

sysctl -w net.ipv4.ip_forward=1

echo “1” > /proc/sys/net/ipv4/ip_forward

网络设置-ip

iproute2包,代替传统的net-tools

格式:

ip [ OPTIONS ] OBJECT { COMMAND | help }

对象OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

选项OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

例子:

ip a/addr/address sh/show dev eth1查看指定IP地址

ip命令

ip是iproute2软件包里面的一个强大的网络配置工具

用来显示或操作路由、网络设备、策略路由和隧道

它能够替代一些传统的网络管理工具,例如ifconfig、route等。

用ip配置的设备信息,大部分会在设备重启后还原。如果想永久保留配置,需进入配置文件修改。

设置和删除ip地址

设置一个IP地址,可以使用下列ip命令:

ip addr add 192.168.0.193/24 dev wlan0

请注意IP地址要有一个后缀,比如**/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码。在这个例子中,子网掩码是255.255.255.0**。(表示子网掩码前24位为1)

查看IP地址

查看一个IP地址,可以使用下列ip命令:

ip addr show wlan0

删除IP地址

删除一个IP地址,可以使用下列ip命令:

ip addr del 192.168.0.193/24 dev wlan0

路由功能

列出路由表条目

ip route show

查看路由表

ip route get 119.75.216.20

添加默认路由

ip route add default via 192.168.202.254

添加网络路由

ip route add 192.168.4.0/24 via 192.168.4.1

修改网络路由

ip route change 192.168.4.0/24 dev eth1

设置NAT路由

ip route add nat 192.168.1.100 via 192.168.1.1

查看某个路由表信息

ip route show table main
ip route show table local
ip route show table all

擦除路由表

  • 擦除所有路由表

    ip route flush

  • 擦除路由表的缓存

    ip route flush cach

永久性配置网络参数

RHEL/CentOS中的TCP/IP配置文件

配置文件 说明
/etc/sysconfig/network 系统网络配置文件,包含了主机最基本的网络信息用于系统启动
/etc/sysconfig/network-scripts/ifcfg-ethX 以太网接口配置文件
/etc/sysconfig/network-scripts/route-ethX 以太网接口的静态路由配置文件
/etc/hosts 完成主机名映射为IP地址的静态解析功能
/etc/resolv.conf 配置域名服务客户端的配置文件,用于指定域名服务器的位置
/etc/host.conf 配置域名服务客户端的控制文件

网络接口配置文件

网络设备的配置被保存在文本文件中 /etc/sysconfig/network-scripts/ifcfg-ethX

配置文件的语法和完整选项列表参见 */usr/share/doc/initscripts-/sysconfig.txt**

常用选项:

选项 说明 选项 说明
Type 指定网络接口类型 IPADDR 指定静态IP地址
DEVICE 指定设备名 NETMASK 指定子网掩码
HWADDR 指定网卡的MAC地址 BROADCAST 指定广播地址
BOOTPROTO 指定获取网络参数的方式 GATEWAY 指定设备的网关
ONBOOT 指定是否在启动时启用设备
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
Type=Ethernet
DEVICE=eth0
HWADDR=00:02:8A:A6:30:45
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.123
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
#静态配置

# vim /etc/sysconfig/network-scripts/ifcfg-eth0    
Type=Ethernet
DEVICE=eth0
HWADDR=00:02:8A:A6:30:45
BOOTPROTO=dhcp
ONBOOT=yes
# 动态配置(DHCP)

系统网络配置文件

系统网络配置文件为**/etc/sysconfig/network**,用于永久性配置主机名和默认网关

例如:

# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos1.ls-al.loc
GATEWAY=192.168.1.254

网络接口的静态路由配置文件

每个网络接口均可有其静态路由配置文件,如**/etc/sysconfig/network-scripts/route-ethX**

配置网络接口eth0的静态路由:

# vim /etc/sysconfig/network-scripts/route-eth0
192.168.2.0/24  via  172.16.10.88

本地域名解析配置文件

本地域名解析数据库文件为 /etc/hosts

例如:

# vim /etc/hosts
127.0.0.1    localhost.localdomain   localhost
::1          localhost6.localdomain6 localhost6

192.168.1.200    centos1.ls-al.loc   centos1
192.168.0.200    soho.mylabs.me      soho

配置远程域名解析器

设置Linux的DNS客户,可以编辑**/etc/resolv.conf**文件

举例:

# vim /etc/resolv.conf
nameserver  192.168.1.1
nameverver  208.67.222.222
nameverver  208.67.220.220
domain     sinolido.org        # 指定本机所在的域
search      sinolido.org        # 指定默认搜索域

配置域名解析顺序

域名解析的优先顺序,由配置文件**/etc/host.conf**决定

例如

  • 首先查找 /etc/hosts 文件进行域名解析
  • 然后使用/etc/resolv.conf文件中指定的域名服务器进行域名解析
# vim /etc/host.conf
order hosts,bind

网络测试工具

网络检测的常用工具

命令工具 功能说明
ifconfig 检测网络接口配置
route 检测路由配置
ping 检测网络连通性
netstat 查看网络状态
lsof 查看指定IP 和/或 端口的进程的当前运行情况
host/dig/nslookup 检测DNS解析
traceroute 检测到目的主机所经过的路由器
tcpdump 显示本机网络流量的状态

ping和traceroute(网络层,ICMP协议)

ping

测试网络的连通性

例如:

ping www.sina.con.cn
ping -c 4 192.168.1.12

traceroute

显示数据包到达目的主机所经过的路由

例如:

traceroute www.sina.com.cn

查看网络端口的使用情况

netstat

查看网络端口

netstat -an
netstat -lunpt

lsof

查看在指定IP 和/或 端口上打开的进程

lsof -i @192.168.0.200

lsof -n -i UDP@192.168.0.200

查看指定端口运行的程序

lsof -i :ssh
lsof -i :22

nmap

端口扫描

网络客户工具

图形界面网络客户工具

图形界面浏览器:Firefox、Mozilla

图形界面E-mail客户端:Thunderbird、Evolution

图形界面FTP客户端:Gftp、Konqueror

图形界面下载工具:WebDownloader for X、Httrack、Getleft

字符界面网络工具

命令 功能
telnet 远程登录
ftp / lftp / ncftp FTP工具
smbclient 存取 SMB/CIFS 共享资源(类似于ftp)
wget 下载文件、镜像 WEB站点
rsync 远程文件同步
links / w3m / lynx 浏览器
mutt / mail 邮件客户
ssh / scp / sftp 基于安全协议的 远程登录/远程复制/远程FTP

传统的ftp命令

只支持交互式使用方式

$ ftp [ < hostname or IPAddress > ]

常用的交互子命令

子命令 功能 子命令 功能
? 获得命令帮助 lcd 切换本地目录
!< CMD > 执行本地Shell命令 !ls 显示本地目录列表
open/close 开启/关闭连接会话 bye/quit 退出ftp交互
bin/asc 指定二进制/文本传输 get/put 单文件上传、下载
pwd、ls、cd、mkdir、rmdir 远程目录管理 mget、mput 多文件上传、下载(支持通配符)

lftp简介

lftp是个功能强大的字符界面文件传输工具

功能:

  • 支持交互式和命令行两种工作模式
  • 支持ftp、ftps、http、https、hftp、fish等传输协议
  • 支持FXP【File eXchange Protocol】(在两个FTP服务器之间传输文件)
  • 支持代理、支持多线程传输、支持断点续传
  • 支持传输队列(queue)、支持书签(bookmark)
  • 支持镜像(mirror)
  • 类似bash,提供后台命令、nohop模式、命令历史、命令别名、命令补齐、作业控制、lftp环境设置等支持。
  • 使用 lftpget 来实现自动化传输

安全的网络客户工具

SSH

SSH 的英文全称为 Secure SHell

SSH 是IETF 的网络工作组所制定的协议

SSH 是建立在应用层和传输层基础上的安全协议

SSH(Secure SHell)协议是 C/S 模式协议,分为 SSH 的客户端和服务器端,一次成功的 SSH 会话需要两端通力合作来完成。

SSH 目的是要在非安全网络上提供安全的远程登录和其他安全服务

所有使用 SSH 协议的通信,包括口令,都会被加密传输

用于替代传统的 telnet、ftp、r族命令(rlogin、rsh、rcp)

ssh [user@]hostname
ssh [user@]hostname command

OpenSSH

OpenSSH 是 SSH 协议的免费开源实现

  • 安全、加密的网络连接工具(ssh、scp、sftp)
  • 代替了 telnet、 rlogin、rsh、rcp 和 ftp 等工具

OpenSSH 支持 SSH 协议的版本 1和 2。

  • 自从 OpenSSH 的版本 2.9 以来,默认的协议是版本 2
  • 版本 2的协议支持 RSA 和 DSA,默认使用 RSA 密钥

OpenSSH 支持的用户认证方式

  • 支持基于 PAM 的用户口令认证
  • 支持用户密钥认证

   转载规则


《Linux网络配置工具》 HillZhang 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录