redhat 网络和路由配置
(ZZ:http://blog.csdn.net/changyanmanman/article/details/7293842)
[redhat] command not found su || su -
最近刚开始学习rhel,在普通帐户下输入某些超级命令时明明存在该命令(如:ifconfig、 useradd),却提示“command not found” 一开始很不解,初学者嘛 ^_^ 后来查了资料才发现: 原来超级用户使用的命令大多是在/sbin里面,一般用户使用的命令一般是在/bin里面,而/bin里面没有这些命令,故“command not found” -----------分---隔---线------------------- 而用 su 命令切换到root执行时还是有这样的提示,郁闷... 呵呵,原来: 使用su虽然切换到了root,但是环境变量并没有一起跟着变过来,如果使用 su - ,环境变量才会一起跟着变过来。所以用 su - 来切换到root才能执行那些超级命令喔 呼呼~~好有意思啊,对吧?^_^ go on |
redhat网络配置:
先看几个常用的命令吧:
$/sbin/ifconfig ——显示ifconfig命令查看网络接口的信息。
#ifconfig eth0 ——显示指定网路接口eth0 的信息。
#ifconfig -a ——显示所有接口的信息。
——————————————————————————————————
$/sbin/route ——显示当前主机路由表的信息。
#route del default gw 211.87.147.254 ——临时删除默认网关211.87.147.254
#route add default gw 192.168.0.1 ——临时添加默认网关192.168.0.1
#route add -net 192.168.1.0/24 gw 192.168.0.254 ——临时添加一条静态路由
/**本文中提及临时操作的地方,即主机重启后该操作将失效,如果希望每次系统重启后自动添加静态路由条目,则可以将该语句写入/etc/rc.d/rc.local中。**/
—————————————————————————————————————
1、#service network start //启动网络服务
2、#service network stop //停止网络服务
3、#service network restart //重启网络服务
4、#service network status //查看网络服务状态
/**在RH中可以通过service命令来管理大多数服务的启动、停止、重启以及查看其工作状态等**/
十一、#chkconfig ——list | grep network //查看某服务的自动启动级别
1、#chkconfig ——level 35 network off //设置在级别35不自动启动某服务
2、#chkconfig ——level 3 network on //设置在级别3自动启动某服务
十二、ntsysv //通过向导在字符界面下修改服务的自启动选项
网络设置里的文件配置:
在 Linux 系统中,TCP/IP 网络是通过若干个文本文件进行配置的,需要编辑这些文件来完成联网工作。在Redhat linux刚安装好后可以通过图形化界面来配置,以下介绍通过命令行配置网络
用cat命令查看默认安装后关于网络配置的文件信息
1.cat /etc/sysconfig/network
#vi /etc/sysconfig/network //通过配置文件修改主机名
NETWORKING=yes
HOSTNAME=localhost.localdomain //修改该值作为主机名,如:rhel.lpwr.net
//该配置修改后,要重启系统方能生效
2.cat /etc/resolv.conf
#vi /etc/resolv.conf //指定当前主机的DNS服务器,最多可指定三个
search lpwr.net //设置当前主机的默认查找域
nameserver 192.168.0.100 //指定首选DNS服务器
nameserver 172.16.254.2
nameserver 202.106.0.20
3.cat /etc/sysconfig/network-scripts/ifcfg-ethN (eth0为默认的,需要根据自己的情况而定)
#vi /etc/sysconfig/network-scripts/eth0 //编辑指定网络接口配置文件
DEVICE=eth0 //指定接口名称
ONBOOT=yes //系统启动时加载
BOOTPROTO=static //IP地址静态配置,若该值为“dhcp”则为动态获得
IPADDR=192.168.0.1 //设置IP地址
NETMASK=255.255.255.0 //设置子网掩码
GATEWAY=192.168.0.254 //设置默认网关
/**注意:设置之后必须要重启network服务或者重启接口(#ifdown eth0;ifup eth0),才能生效。**/
十五、#vi /etc/hosts //设置本地DNS解析文件
127.0.0.1 localhost.localdomain localhost //该行强烈建议保留
192.168.0.1 rhel.lpwr.net rhel //必须有三个字段:IP、FQDN、HOSTNAME
——————————————————————————————————————
使用下面的 route 命令可以查看 Linux 内核路由表。
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route 命令的输出项说明
输出项 | 说明 |
---|---|
Destination | 目标网段或者主机 |
Gateway | 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 |
Genmask | 网络掩码 |
Flags | 标记。一些可能的标记如下: |
U — 路由是活动的 | |
H — 目标是一个主机 | |
G — 路由指向网关 | |
R — 恢复动态路由产生的表项 | |
D — 由路由的后台程序动态地安装 | |
M — 由路由的后台程序修改 | |
! — 拒绝路由 | |
Metric | 路由距离,到达指定网络所需的中转数(linux 内核中没有使用) |
Ref | 路由项引用次数(linux 内核中没有使用) |
Use | 此路由项被路由软件查找的次数 |
Iface | 该路由表项对应的输出接口 |
3 种路由类型
主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ------ --- --- -----
10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0
网络路由
网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ----- --- --- -----
192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface
----------- ------- ------- ----- ------ --- --- -----
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
-
add : 添加一条路由规则
-
del : 删除一条路由规则
-
-net : 目的地址是一个网络
-
-host : 目的地址是一个主机
-
target : 目的网络或主机
-
netmask : 目的地址的网络掩码
-
gw : 路由数据包通过的网关
-
dev : 为路由指定的网络接口
route 命令使用举例
添加到主机的路由
# 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
设置包转发
在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1
这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward