Linux网络相关
ifocnfig 查看网卡ip(yum install net-tools)
ip add 查看网卡
ip add = ifocnfig
ifconfig 不显示down掉的网卡,只显示正在工作的网卡。
ifconfig -a 显示当前正在使用的网卡和down掉的网卡
ifdown enth0 关闭eth0网卡
ifup enth0 启动eth0网卡
当先执行ifdown eth0的时候就断开远程连接了,如果需要重新启动某个网卡,可以两天命令
一起执行 ifdown eth0 && ifup eth0
增加一个虚拟网卡eth0:0
也就是给虚拟网卡设置一个IP:
[root@centos7 ~]# cd /etc/sysconfig/network-scripts/
[root@centos7 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:\0
ifcfg-eth0:\0 反斜杠表示脱义
修改网卡配置文件
vim ifcfg-eth0:0
修改内容如下:
修改NAME
NAME=eth0:0
修改IP地址
IPADDR=10.211.55.17
修改设备名
DEVICE=eth0:0
只留下子网掩码,网关,DNS1可以去掉
NETMASK=255.255.0.0
:wq保存即可
[root@localhost network-scripts]# ifdown eth0 && ifup eth0
成功断开设备 'eth0'。
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/151)
添加了一个新的IP地址:10.211.55.17
ifconfig 可以添加的新网卡eth0:0
eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.211.55.17 netmask 255.255.0.0 broadcast 10.211.255.255
ether 00:1c:42:8c:25:09 txqueuelen 1000 (Ethernet)
同样也可以用虚拟网卡的IP地址登录ssh root@10.211.55.17
mii-tool enth0 查看网卡是否连接
如果显示not support
用ethtool eth0
[root@localhost network-scripts]# ethtool eth0
Settings for eth0:
Link detected: yes
更改主机名 hostnamectl set-hostname centos7
[root@localhost network-scripts]# hostnamectl set-hostname Centos7
[root@localhost network-scripts]# bash
[root@centos7 network-scripts]# cat /etc/hostname
centos7
[root@centos7 network-scripts]# exit
exit
DNS配置文件/etc/resolv.conf
[root@localhost network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29
DNS是在/etc/sysconfig/eth0下配置的,可以添加一个DNS2 google DNS
[root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS2:8.8.8.8
重新启动网卡
ifdown eth0 && ifup eth0
然后查看/etc/resolv.conf
[root@localhost network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 119.29.29.29
nameserver 8.8.8.8
/etc/hosts 是windows、linux下都有的文件。 用来改自定义域名
cat /etc/hosts
当ping baidu.com 时候 是访问的百度的IP地址,但我也可以修改成ping 本机IP 10.211.55.17
vim /etc/hosts
添加
10.211.55.17 www.baidu.com
一行 一个IP地址可以有多个域名。
不同的IP地址对应相同的域名,以最后一个IP地址对应的域名为准。
firewalld和netfilter
防火墙1:selinux
selinux 临时关闭 setenforce 0
selinux 永久关闭 vi /etc/selinux/config
修改
SELINUX=disabled
查看selinux是否关闭:
getenforce
selinux 一般暂时关闭或者永久关闭也行。
防火墙2:netfilter
防火墙:netfilter ,filrewalld--->配置iptbales
centos7之前使用netfilter防火墙
关闭firewalld
systemctl disable firewalld(.service)
systemctl stop firewalld(.service)
开启netfilter 方法
(iptables是netfilter的一个工具)
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
防火墙:netfilter和firewalld 其底层都是iptables
就是配置iptables
netfilter5表5链介绍
netfilter的5个表(filter表,nat表,managle表,raw表,security表)
iptables手册:
更加参考手册man iptables 找到5个表(filter表,nat表,managle表,raw表,security表)
iptables传输数据包的过程
http://www.cnblogs.com/metoy/p/4320813.html
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
filter表(内置的表)
用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
INPUT链(进来的数据链)
FORWARD链(判断目标地址是不是本机,或者对目标地址修改)
OUTPUT链(本机产生的包,出去之前所做的操作)
nat表(跟路由器 iptables nat表 端口重映射一样)
用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
PREROUTING 进来数据包所做的更改
OUTPUT出去数据包之前所做的更改
POSTROUTING出去数据包所做的更改
以下3个表几乎不常用:
managle表
用于给数据包做标记,几乎用不到
raw表
可以实现不同追踪某些数据包(从来不用)
security表
在centos6中并没有,用于强制访问控制
iptables语法
查看iptables规则
iptbales -nvL
规则存储在/etc/sysconfig/iptables
[root@localhost network-scripts]# cat /etc/sysconfig/iptables
iptables -F 清空规则
service iptables save 保存规则
service iptables restart 重启iptables 加载原来的配置文件里面的规则/etc/sysconfig/iptables
iptables -t nat //-t 指定表
iptables -t filter -nvL 查看filter里面的规则(不加-t 默认加载filter)
iptables -t nat -nvL 查看nat表里面的规则
iptables -Z 可以把计数器清零
添加一条规则:(-A)
(不加-t 默认filter表)
iptbales -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
-A 意思是add 添加
-s source来源
-p 协议protocol tcp /udp
-d destination目标ip
-dport 目标端口
-j reject拒绝
DROP 丢掉 /REJECT 看一下不符合就丢掉数据
插入一条规则:(-I)
iptables -I INPUT -p tcp --dport 80 -j DROP
删除一条规则(-D)
iptbales -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
iptables -D INPUT -p tcp --dport 80 -j DROP
但是我不记得具体的规则,可以这样删除规则,根据规则号删除规则:
iptables -nvL --line-numbers
iptables -D INPUT 1
-A 添加到规则最后面;-I (insert)把规则插入到前面;-D (delete )删除一条规则
-i 指定网卡inferace
iptables -I /-A/-D INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
对所有的规则设置策略policy,默认的策略是accept
DROP会拒绝所有的数据传入
iptables -P INPUT DROP
ACCEPT接收所有的数据包
iptables -P INPUT ACCEPT