linux--网络-1
Posted 我才是酷酷的飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux--网络-1相关的知识,希望对你有一定的参考价值。
cat /etc/services
查看常见端口对应的服务
查一查某个端口号,是哪个进程在用 lsof -i :6010
49152-65535:动态端口或私有端口,客户端程序随机使用的端口 其范围的定义:
/proc/sys/net/ipv4/ip_local_port_range
TCP 三次握手
seq是发给对方包的序号,ack是希望对方下次发给我包的序号
SYN 第一次通信都要有SYN=1,所以只在前两次握手 有SYN
ACK是对SYN的回应,所以只在后两次有
sync半连接和accept全连接队列
ss –lnt
/proc/sys/net/ipv4/tcp_max_syn_backlog 未完成连接队列大小,建议调整大小为1024以上
/proc/sys/net/core/somaxconn 完成连接队列大小,建议调整大小为1024以上
注意:以前老的命令如 ifconfig route netstat 都不提倡使用了,提倡使用新包iproute包所安装的一些命令如 ip: object {link, addr, route}, ss, tc
ifconfig [interface] //显示网卡信息,默认只显示激活网卡的信息
ifconfig -a //显示所有网卡信息,包括关闭的网卡
ifconfig IFACE [up|down] // ifconfig eth1 down
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/NETMASK [up] //临时设置 ip ifconfig eth1 1.1.1.1/24
ifconfig IFACE IP netmask NETMASK // ifconfig eth1 1.1.1.1 255.255.255.0
ifconfig eth1:123 1.1.1.1/24 //临时增加ip,同一块网卡增加了ip
route
查看:route -n
添加:route add
目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0
默认路由,网关172.16.0.1
route del default gw 172.16.0.1
netstat
- -t: tcp协议相关
- -u: udp协议相关
- -w: raw socket相关
- -l: 处于监听状态
- -a: 所有状态
- -n: 以数字显示IP和端口
- -e:扩展格式
- -p: 显示相关进程及PID
- 显示路由表 netstat -nr
ip
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip addr 查看所有网卡所有地址
ip addr add 1.1.1.1/24 dev eth1 给eth1网卡增加其他的ip,是增加啊
ip addr add 1.1.1.1/24 dev eth1 label eth1:123 给eth1网卡增加其他的ip,并且起个别名eth1:123
ip addr del 1.1.1.1/24 dev eth1 删除eth1网卡上的1.1.1.1 ip
ip a flush dev eth1 清除eth1上的所有ip
ip link set eth1 down 把网卡关掉
ip link set eth1 name eth100 修改网卡名称,需要先把网卡关掉
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
ip route add default via 172.16.0.1 //添加默认路由
ip route del 192.168.0.0/24 via 172.16.0.1 //删除路由
ip route flush [dev IFACE] [via PREFIX] //清空路由表
ip route flush dev eth0
linux想启用路由转发功能(当路由器)
修改内核参数 /proc/sys/net/ipv4/ip_forward 1为启用
路由的 Metric值表示 “花钱”,值越大,花钱越大,所以系统会挑花钱少的路走,比如有两条默认路由,那么Metric值小的路由生效。添加路由时,可以加上metric 参数,指定Metric值
ss socket statistics
格式:ss [OPTION]... [FILTER]
- -t: tcp协议相关
- -u: udp协议相关
- -w: 裸套接字相关
- -x:unix sock相关
- -l: listen状态的连接
- -a: 所有 显示处在listening 和 非listening 状态的套接字
- -n: 数字格式
- -r :解析数字地址/端口
- -p: 相关的程序及PID
- -e: 扩展的信息
- -m:内存用量
- -o:计时器信息
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
常见连接状态
- LISTEN: 监听
- ESTABLISHED:已建立的连接
- FIN_WAIT_1
- FIN_WAIT_2
- SYN_SENT
- SYN_RECV
- CLOSED
- connected – All the states except for listen and closed
ss -t4 state time-wait 列出处在 time-wait 状态的 IPv4 套接字
ss -nt state connected dport = :80 显示对方端口是 80的套接字
EXPRESSION:
示例:’( dport = :ssh or sport = :ssh )’
ss -at \'( dport = :ssh or sport = :ssh )\' 显示所有源端口或目的端口为 ssh 的套接字
ss -o state established \'( dport = :http or sport = :http )\' 显示所有已建立 的HTTP连接
匹配远程地址和端口号
ss dst 192.168.25.100
ss dst 192.168.25.100:50460
匹配本地地址和端口号
ss src 192.168.25.140
路由配置文件
/etc/sysconfig/network-scripts/route-IFACE
如:10.0.0.0/8 via 172.16.0.1
注意:需service network restart生效
给网卡增加其他ip与别名:
关闭NetworkManager服务
创建 ifcfg-eth1:123 文件
写上网卡的信息,肯定越简单越好,只需要配个ip
然后重启网卡服务
Linux ip 可以手动配置一个 还能自动获取一个,但是自动获取的只能在主配置文件里
centos6 修改网卡名称:网卡名字相关文件:vim /etc/udev/rules.d/70-persistent-net.rules (需要重启系统)
Centos7修改网卡名称
Centos7 修改网卡名称 默认7采用的网卡命名方式为ens33之类的,没有按照顺序来,不是很习惯,所以可以修改为传统的eth0
先把网卡的配置文件改掉,(网卡文件名称,配置文件中的设备名与name)
然后按照下面的步骤修改grub
必要时添加文件 vim /etc/udev/rules.d/70-persistent-net.rules (这一步 可以不用做。必要时)
写入一下内容 SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{address}=="00:0c:29:47:a4:e9",ATTR{type}=="1" ,KERNEL=="eth*",NAME="eth0" //网卡与名字对应关系,只需要修改mac地址与后面的name
(1) 编辑/etc/default/grub配置文件 GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0" // 在rhgb quiet后面增加
或:修改/boot/grub2/grub.cfg
(2) 为grub2生成其配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg
(3) 重启系统
sed -rn \'/^[[:space:]+linux16]/s#(.*)#\\1 我想假加的字符串 #p\' /boot/grub2/grub.cfg //找到linux16的行,在行的最后面加上你想要的东西
sed -rn \'/^[[:space:]+linux16]/s#(.*)#\\1 net.ifnames=0 #p\' /boot/grub2/grub.cfg //这个命令会把网卡名字改为传统的网卡 eth1.。。。
sed -rn \'/rhgb quiet/s#(.*)(rhgb quiet)("$)#\\1\\2 int int \\3#p\' /etc/default/grub
dns
Linux下配置dns的三种方法
1. HOST 本地DNS解析 vi /etc/hosts eg:23.231.234.33 www.baidu.com
2. 网卡配置文件DNS服务地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 eg:DSN1=\'114.114.114.114\'
3. 系统默认DNS配置 vim /etc/resolv.conf eg:nameserver 114.114.114.114
系统解析的优先级 1>2>3
主机名的修改
hostname 可以查看主机名也可以设置主机名(临时设置)
hostnamectl status 也查看主机名
设置主机名: hostnamectl set-hostname centos7.magedu.com ///永久生效的
或者修改 /etc/hostname文件 也是永久生效的
centos6: /etc/sysconfig/network
HOSTNAME=
/etc/hosts 作用类似于 dns,把名字和ip地址做解析,所以直接在这里写好,就不用连接dns了
/etc/hostname与/etc/hosts的区别
- /etc/hostname中存放的是主机名
- /etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字
Linux系 统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。由此,/etc /hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来映射自己的IP时候才会用到/etc/hosts文件。 两者没有必然的联系。
网卡绑定bond
- Mode 0 (balance-rr)
- 轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
- Mode 1 (active-backup)
- 活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口 失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有 一个外部端口上可见
- Mode 3 (broadcast)
- 广播策略:在所有的slave接口上传送所有的报文,提供容错能力
- active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特 殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需 要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel
做法:
新建 网卡文件ifcfg-bond0
内容还是一般的网卡内容,该怎么配就怎么配 ,加入下面的内容
BONDING_OPTS= “miimon=100 mode=1”
mode Mode几
miimon 是用来进行链路监测的 100ms
在需要绑定的网卡里面加入下面的,加入之后,这个网卡的ip设置就无效了
MASTER=bond0
SLAVE=yes
centos7下 推荐使用的工具 nmcli ----networkmanager client
nmcli 有很多子命令 其中用的最多的就是 connection device
device 表示链路层的信息
nmcli device
nmcli device show eth0
connection 表示网络层的信息
nmcli connection
nmcli connection show eth1
当我们在测试环境中,经常需要修改网卡地址,一会改过来改过去的,很烦。所以通过nmcli工具可以 为一个网卡设定多个方案,只需要用哪个就启用那个就OK了。
如下命令 我们为eth1网卡 添加了名字为eth1-test的方案,类型为以太网,ip地址获取方式为手动设置
设置好之后,想要启用的话,nmcli connection up eth1-test //它启动之后,另外的就会自动关闭
他本质上还是创建一个 同名的eth1-test文件,当然我们也可以自己创建一个这个文件 然后 nmcli connection reload 重新加载一下 就有了。
删除的话 nmcli connection delete eth1-test 会自动切换
上面的是 添加一个自动获取的方案
当然还可以为某一个方案加地址,多个地址
为eth1-test方案 增加地址,加地址本质上还是修改了配置文件
也可以通过 nmcli 设置bond
添加一个bond ifname指的是生成的bond设备名
然后将两个网卡加进去就欧了,这里用到的本质是,给eth0 eth1网卡都增加了一个方案,而这个方案就是bond模式,到时候一切换,就OK了
网桥
添加一个网桥设备
给eth0网卡 添加一个叫mybr0-eth0的方案,类型为br,并且加到br0网桥里
这种通过nmcli实现的网桥 是写到配置文件里的,可以保存的
以上是关于linux--网络-1的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装