10.11 Linux网络相
ifconfig命令用于显示或设置网络设备。
ifconfig可设置网络设备的状态,或是显示目前的设置。
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
参数说明:
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。
ifconfig
默认没有安装,centos默认网卡查看ip addr
ifconfig安装命令:
yum install net-tools -y
[[email protected] ~]# ifconfig ### 显示网络设备信息
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.111.154 netmask 255.255.240.0 broadcast 172.18.111.255
ether 00:16:3e:0e:61:05 txqueuelen 1000 (Ethernet)
RX packets 6164832 bytes 2387103480 (2.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4474811 bytes 976439547 (931.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 1140931 bytes 62396734 (59.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1140931 bytes 62396734 (59.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##编辑网卡eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.154
NETMASK=255.255.240.0
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-eth0 ifcfg-eth0\:0
[[email protected] network-scripts]# vim ifcfg-eth0\:0 ## eth0:0为eth0子网卡
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.155
NETMASK=255.255.240.0
[[email protected] network-scripts]# ll
total 240
-rw-r--r-- 1 root root 84 Apr 11 13:51 ifcfg-eth0
-rw-r--r-- 1 root root 84 Apr 27 22:23 ifcfg-eth0:0
[[email protected] network-scripts]# cat ifcfg-eth0\:0
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.18.111.155
NETMASK=255.255.240.0
[[email protected] network-scripts]# ifconfig ### 显示网络设备信息
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.111.154 netmask 255.255.240.0 broadcast 172.18.111.255
ether 00:16:3e:0e:61:05 txqueuelen 1000 (Ethernet)
RX packets 6167731 bytes 2387643326 (2.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4477165 bytes 976955839 (931.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.111.155 netmask 255.255.240.0 broadcast 172.18.111.255
ether 00:16:3e:0e:61:05 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 1141450 bytes 62425055 (59.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1141450 bytes 62425055 (59.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
启动关闭指定网卡
# ifconfig eth0 down
# ifconfig eth0 up
为网卡配置和删除IPv6地址
# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡诶之IPv6地址
# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
用ifconfig修改MAC地址
# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
# ifconfig eth1 up //启动网卡
配置IP地址
# ifconfig eth0 192.168.1.56
//给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0
// 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
启用和关闭ARP协议
# ifconfig eth0 arp //开启
# ifconfig eth0 -arp //关闭
设置最大传输单元
# ifconfig eth0 mtu 1500
//设置能通过的最大数据包大小为 1500 bytes
[[email protected] ~]# ethtool eth0
Settings for eth0:
Link detected: yes
[[email protected] ~]# hostnamectl set-hostname aiker
[[email protected] ~]# cat /etc/resolv.conf
nameserver 100.100.2.138
nameserver 100.100.2.136
options timeout:2 attempts:3 rotate single-request-reopen
[[email protected] ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
nmtui ##命令行下的图形设置IP,主机名界面,如果没有需要安装network-manager
10.12 firewalld和netfilter
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 永久关闭selinux,需要重启
setenforcing 0 临时关闭,不用重启
getenforce 获取selinux的状态
? systemctl disable firewalled
? systemctl stop firewalld
? yum install -y iptables-services
? systemctl enable iptables
? systemctl start iptables
?
?
#! /bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p icmp --icmp-type 8 -j DROP ##禁ping
10.13 netfilter5表5链介绍
netfilter的5个表
? filter表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
? nat表用于网络地址转换,有PREROUTING(进来的时候)、OUTPUT、POSTROUTING(出去时候)三个链
? managle表用于给数据包做标记,几乎用不到
? raw表可以实现不追踪某些数据包,
? security表在centos6中并没有,用于强制访问控制(MAC)的网络规则
? 数据包流向与netfilter的5个链
? PREROUTING:数据包进入路由表之前
? INPUT:通过路由表后目的地为本机
? FORWARD:通过路由表后,目的地不为本机
? OUTPUT:由本机产生,向外发出
? POSTROUTING:发送到网卡接口之前
10.14 iptables语法
iptables -nvL查看iptables规则
[[email protected] ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
iptables -F 清空规则
[[email protected] ~]# iptables -F
service iptables save 保存规则
iptables -t nat
//-t指定表iptables -Z
可以把计数器清零
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP
iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
iptables -nvL --line-numbers
iptables -D INPUT 1
iptables -P INPUT DROP
原文地址:http://blog.51cto.com/235571/2108696