Linux网络相关
ifconfig命令查看网卡IP
刚接触linux系统开始的时候我们学习到查看网卡IP方式是使用ip addr,而ifconfig命令和ip addr命令的结果是相似的,如果系统里没有ifconfig命令,安装即可;
[[email protected] ~]# yum install -y net-tools
在linux下修改ip需要进入到/etc/sysconfig/network-scripts/目录下面修改相关的网卡文件即可,比如;
[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
在linux上有多个网卡,而你只想重启某个网卡的时候,可以使用以下操作;
[[email protected] ~]# ifdown ens33; ifup ens33
或者
[[email protected] ~]# ifdown ens33 && ifup ens33
由于是远程登录的,所以在使用ifdown的时候需要谨慎,不要单独使用ifdown。
给一个网卡设定多个ip
[[email protected] ~]# cd /etc/sysconfig/network-scripts/ //先到网卡配置文件的目录下
[[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:1 //拷贝一个ens33文件名并重命名为ens33:1 这里用到反斜杠使用脱义
然后开始编辑ens33:1文件即可,修改NAME和DEVICE 为ens33:1 设定一个IPADDR地址保存并退出,重启网卡即可
这个时候在ifconfig查看就可以看到多了一个网卡
查看网卡连接状态
[[email protected] ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
这里显示link ok,就说明网卡为连接状态,如果显示no link,说明网卡存在坏了或者没有连接网线的情况,除了这个mii-tool命令外还有一个命令也可以查看;
[[email protected] ~]# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
如果网卡没有连接成功,最后面一行link detected显示为no。
更改主机名
使用hostname命令可以查看主机名,hostname命令后面跟一个自定义的名字则是临时修改主机名,重启后无效
[[email protected] ~]# hostname
Ask-02
[[email protected] ~]# hostname Ask-03**
想要永久改主机名,执行以下命令修改
[[email protected] ~]# hostnamectl set-hostname Ask-03
修改后重新登录即可看到变化
设置DNS
在linux下设置DNS非常简单,只要把DNS地址写入配置文件即可
[[email protected] ~]# cat /etc/resolv.conf
·# Generated by NetworkManager
nameserver 119.29.29.29
[[email protected] ~]# vi /etc/resolv.conf
[[email protected] ~]# cat /etc/resolv.conf
·# Generated by NetworkManager
nameserver 119.29.29.29
nameserver 8.8.8.8
在linux下还有一个特殊文件/etc/hosts也能解析域名
[[email protected] ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
使用Vim编辑该文件,增加一行192.168.135.133 www.baidu.com,保存后再ping以下www.baidu.com就会连接到192.168.135.133
[[email protected] ~]# vim /etc/hosts
[[email protected] ~]# ping -c 2 www.baidu.com
PING www.baidu.com (192.168.135.133) 56(84) bytes of data.
64 bytes from www.baidu.com (192.168.135.133): icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from www.baidu.com (192.168.135.133): icmp_seq=2 ttl=64 time=0.370 ms--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.045/0.207/0.370/0.163 ms
hosts文件格式很简单,注意以下几点;
* 一个ip后面可以跟多个域名,可以是几十个甚至上百个;
* 每一行只能有一个ip,也就是说一个域名不能对应多个ip;
* 如果有多行中出现相同的域名(对应的ip不一样),就会按最前面出现的记录来解析
firewalld和netfilter
linux的防火墙
SELinux是linux系统特有的安全机制。因为这种机制的限制太多,配置也繁琐,所以几乎没有人真正的应用它,安装玩系统我们一般都把SELinux关闭,以免引起不必要的麻烦,临时关闭的犯法;
[[email protected] ~]# setenforce 0
永久关闭的方法,需要更改配置文件/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled保存并退出即可,重启系统后生效,此处切记不要改作地方以免照成系统无法开机。
[[email protected] ~]# vi /etc/selinux/config
[[email protected] ~]# getenforce //修改好重启系统后可以使用该命令查看selinux防火墙状态
Disabled
netfilter是在Centos7之前使用的防火墙,Centos7使用的是firewalld,由于大部分公司还是使用Centos6的情况,我们可以先通过之前版本的iptables了解和学习,firewalld和netfilter 使用的命令同样支持的,意味这两者兼容。
因此我们先关闭firewalld后再开启netfilter ,操作如下;
[[email protected] ~]# systemctl stop firewalld //关闭firewalld服务
[[email protected] ~]# systemctl disable firewalld //禁止firewalld服务开机启动
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[[email protected] ~]# yum install -y iptables-services //安装iptables-services ,使之前的版本可以使用(即netfilter )
[[email protected] ~]# systemctl enable iptables //让服务开机启动
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.
[[email protected] ~]# systemctl start iptables //启动iptables服务
到此就设置好了,可以使用之前版本的iptables了
使用以下命令可以查看规则;
[[email protected] ~]# iptables -nvL
netfilter5表5链介绍
netfilter的5个表
filter:表主要用于过滤包,是系统预设的表,该表内建3个链:INPUT、OUTPUT以及FORWARD。INPUT链作用于进入本机的包,OUTPUT链作用于本机送出的包,FORWARD链作用于那些跟本机无关的包。
nat:表主要用于网络地址转换,同样也有3个链,PREROUTING链的作用是在包刚刚到达防火墙时改变它的目的地址,OUTPUT链的作用是改变本地产生的包的目的地址,POSTROUTING链的作用是在包即将离开防火墙时改变其源地址。该表阿铭仅偶尔会用到。
mangle:表主要用于给数据包做标记,然后根据标记去操作相应的包。这个表几乎不怎么用
raw:表可以实现不追踪数据包做标记,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,所以可以用raw表来指定某些端口的包不被追踪。
security:表在Centos6里是没有的,它用于强制访问控制(MAC)的网络规则。
netfilter的5个链
5个链分别为PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARD:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTING:发送到网卡接口之前
参考图
iptables语法
查看iptables默认规则配置文件:
[[email protected] ~]# cat /etc/sysconfig/iptables
查看iptables默认规则:
[[email protected] ~]# iptables -nvL
保存iptables规则(当前规则,保存到配置文件):
[[email protected] ~]# service iptables save
清空iptables规则:
[[email protected] ~]# iptables -F
重启iptables规则:
[[email protected] ~]# service iptables restart
指定表:
[[email protected] ~]# iptables -t nat -nvL
[[email protected] ~]# iptables -t filter -nvL
把表的计数器清零:
[[email protected] ~]# iptables -nvL
如果不加-t,则默认的是filter表
- -A/-D:表示增加/删除一条规则
- -I:表示插入一条规则其实效果跟-A一样
- -p:表示指定协议,可以是tcp、udp或者icmp
- --dport:跟-p一起使用,表示指定目标端口
- --sport:跟=p一起使用,表示指定源端口
- -s:表示指定源IP(可以是一个IP段)
- -d:表示指定目的IP(可以是一个IP段)
- -j:后面跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包
- -i:表示指定网卡
原文地址:http://blog.51cto.com/13529231/2065457