linux 网络相关配置

1、修改网卡名称

#centos7,8
[root@rocky86 0723]# sed -Ei.bak 's/^(GRUB_CMDLINE_LINUX=.*)"$/\1 net.ifnames=0"/' /etc/default/grub
[root@rocky86 0723]# sed -Ei '/^GRUB_CMDLINE_LINUX/s#"$# net.ifnames=0"#' 
/etc/default/grub

#修改完成后重启生效
[root@rocky86 0723]# grub2-mkconfig -o /etc/grub2.cfg;reboot;
#ubuntu2204
[root@ubuntu2204 ~]# sed -Ei '/^GRUB_CMDLINE_LINUX/s#"$# net.ifnames=0"#' 
/etc/default/grub

[root@ubuntu2204 ~]# grub-mkconfig -o /boot/grub/grub.cfg;reboot

2、修改selinux配置

[root@rocky86 0723]# cp /etc/selinux/config ./

[root@rocky86 0723]# sed -i.bak '/SELINUX=enforcing/c SELINUX=disabled' config 

[root@rocky86 0723]# sed -i.bak '/^SELINUX=/c SELINUX=disabled/' config

[root@rocky86 0723]# sed  -Ei.bak 's/^SELINUX=.*/SELINUX=disabled/' config

[root@rocky86 0723]# sed  -Ei.bak 's/^(SELINUX=)(.*)/\1disabled/' config

3、route

route 命令用于管理和查看网络路由表,它允许您控制数据包的路由方式。以下是一些常见的 route 命令用法:

查看当前路由表
route -n

这会显示当前系统的路由表,包括目标网络、网关、接口和路由标志。

添加路由
route add -net 目标网络 netmask 子网掩码 网关

例如,要将数据包路由到目标网络 192.168.1.0/24,通过网关 192.168.0.1,可以使用以下命令:

sudo route add -net 192.168.1.0 netmask 255.255.255.0 192.168.0.1

或者,如果要添加一个主机路由(指向单个 IP 地址),可以使用以下命令:

sudo route add -host 目标IP地址 网关
删除路由
route del -net 目标网络 netmask 子网掩码 网关

例如,要删除之前添加的路由:

sudo route del -net 192.168.1.0 netmask 255.255.255.0 192.168.0.1
临时修改默认网关

通过修改默认网关,您可以更改系统上的所有数据包的路由方式。请注意,这只会在临时情况下更改默认网关,重启系统后将重置为默认设置。

sudo route add default gw 新的默认网关

例如,将默认网关更改为 192.168.0.254

sudo route add default gw 192.168.0.254
永久修改默认网关

要永久更改默认网关,您通常需要编辑网络配置文件,具体取决于您的 Linux 发行版。在大多数情况下,您需要编辑 /etc/network/interfaces/etc/sysconfig/network-scripts/ifcfg-ethX 文件,并在其中指定新的默认网关。

4、IP

ip 命令是一个强大的网络工具,可用于配置、管理和监视网络接口、路由、地址和其他网络参数。以下是一些常见的 ip 命令用法:

显示网络接口信息
ip link show

这将显示系统上所有网络接口的信息,包括名称、状态、MAC 地址和设备类型。

启用或禁用网络接口

若要启用或禁用网络接口,可以使用以下命令:
启用接口:

sudo ip link set dev 接口名称 up

禁用接口:

sudo ip link set dev 接口名称 down

请将 接口名称 替换为实际的接口名称,例如 eth0

分配 IP 地址

若要为网络接口分配 IP 地址,可以使用以下命令:

sudo ip address add IP地址/子网掩码 dev 接口名称

例如:

sudo ip address add 192.168.1.100/24 dev eth0
删除 IP 地址

若要从网络接口中删除 IP 地址,可以使用以下命令:

sudo ip address del IP地址/子网掩码 dev 接口名称

例如:

sudo ip address del 192.168.1.100/24 dev eth0
显示路由表
ip route show

这将显示系统的路由表,包括目标网络、网关、接口和路由标志。

添加路由
sudo ip route add 目标网络/子网掩码 via 网关

例如,要将数据包路由到目标网络 192.168.2.0/24 通过网关 192.168.1.1,可以使用以下命令:

sudo ip route add 192.168.2.0/24 via 192.168.1.1
删除路由
sudo ip route del 目标网络/子网掩码

例如,要删除之前添加的路由:

sudo ip route del 192.168.2.0/24

5、Linux使用tcpdump抓取网络数据包

1.tcpdump的命令格式

tcpdump [-i 网卡] -nnAX ‘表达式’

  • -i:interface 监听的网卡。
  • -nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。
  • -A:以ascii的方式显示数据包,抓取web数据时很有用。
  • -X:数据包将会以16进制和ascii的方式显示。
  • 表达式:表达式有很多种,常见的有:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用!,更多的使用可以查看man 7 pcap-filter。

下面进行一些命令测试,如果没有权限,可以先切换成root用户。

# 监听网卡eth0
$ tcpdump -i eth0

这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看。

# 监听指定协议的数据
$ tcpdump -i eth0 -nn 'icmp'

这个是用来监听icmp协议的数据,就是ping命令使用的协议。类似的,如果要监听tcp或者是udp协议,只需要修改上例的icmp就可以了。

linux使用tcpdump抓包示例
每一行的各个数据表示的含义:
抓到包的时间 IP 发包的主机和端口 > 接收的主机和端口 数据包内容

# 监听指定的主机
$ tcpdump -i eth0 -nn 'host 192.168.1.231'

这样的话,192.168.1.231这台主机接收到的包和发送的包都会被抓取。

$ tcpdump -i eth0 -nn 'src host 192.168.1.231'

这样只有192.168.1.231这台主机发送的包才会被抓取。

$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'

这样只有192.168.1.231这台主机接收到的包才会被抓取。
监听指定端口

$ tcpdump -i eth0 -nnA 'port 80'
#或者
$ tcpdump -i eth0 port 80

上例是用来监听主机的80端口收到和发送的所有数据包,结合-A参数,在web开发中,真是非常有用。
监听指定主机和端口

$ tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'
#或者
$ tcpdump -i eth0 port 80 and host 192.168.0.1

多个条件可以用and,or连接。上例表示监听192.168.1.231主机通过80端口发送的数据包。
监听除某个端口外的其它端口

$ tcpdump -i eth0 -nnA '!port 22'

如果需要排除某个端口或者主机,可以使用“!”符号,上例表示监听非22端口的数据包。

# 在一个终端窗口中运行,将捕获的数据包写入文件
tcpdump -i ens160 port 1234 and host 10.0.0.161 -s0 -w skynet.pcap & 
# 在另一个终端窗口中运行,实时显示捕获的数据包(注意这里不写入文件)
tcpdump -i ens160 port 1234 and host 10.0.0.161 -s0 -nn

-i 接口
-s0 获取所有数据

另外在抓取web包的时候,发送网页内容都是很奇怪的字符,发现是apache开启了gzip压缩的缘故,关闭掉gzip压缩就可以了。在ubuntu 12.04下,编辑vim /etc/apache2/mods-enabled/deflate.load文件,将加载模块deflate_module的语句注释掉,然后重启apache就OK了

6、网卡管理NetworkManager问题

1.网卡没网解析:

检查是否正常使用nmcli

#正常
[root@rocky86 httpd]# nmcli networking connectivity 
full
2.当发现nmcli不能起eth0时,观察报错,可能是networking关闭了,又或者是eth0没有连接(在虚拟机右下角的三个方块里面的网卡进行connet就可以了
#启动失败
[root@localhost ~]# nmcli con up eth0
Error: Connection activation failed: No suitable device found for this connection (device lo not available because device is strictly unmanaged).
#开启networking
[root@localhost ~]# nmcli networking on
[root@localhost ~]# nmcli con up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)

7、防火墙firewalld

1.firewalld开启80端口

检查Firewalld是否正在运行:

systemctl status firewalld

如果Firewalld未运行,请启动它:

2.确定要开放的端口。

在本例中,我们要开放80端口,它是Web服务器默认使用的端口。

#  执行以下命令以开放80端口
firewall-cmd --add-port=80/tcp --permanent

这将在Firewalld的永久规则中添加一个新的端口。请注意,这不会立即生效,而是在重新启动Firewalld后才会生效。

3.重新加载Firewalld,以使更改生效:
firewall-cmd --reload
4.确认端口是否已成功开放。您可以使用以下命令列出所有已开放的端口:
firewall-cmd --list-ports

如果80端口出现在列表中,则表示已成功开放。

5.移除80端口的TCP访问权限。
firewall-cmd --zone=public --remove-port=80/tcp --permanent
  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值