linux端口映射_Linux命令行工具

/* ----------- wpa_supplicant的使用方法 ------------*/

介绍:

对无线网络的配置是全局性的?而非针对具体接口。wpa_supplicant是一个 独立运行的 守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。经过编译后 的 wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant 和 wpa_cli。

wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。

wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B

可选项

-g global ctrl_interface

-B 以守护进程的形式在后台运行

-P PID file(方便kill)

-i interface name

-c configure-file

-d debug message

启动wpa_cli

wpa_cli -i wlan0 scan  //搜索附件wifi热点

wpa_cli -i wlan0 scan_result   //显示搜索wifi热点

wpa_cli -i wlan0 status //当前WPA/EAPOL/EAP通讯状态

wpa_cli -i wlan0 ping //pings wpa_supplicant

添加新的连接

wpa_cli -i wlan0 add_network //添加一个网络连接,会返回<network id>

wpa_cli set_network <network id> ssid '"name"' //ssid名称

wpa_cli set_network <network id> psk '“psk”'  //密码

wpa_cli set_network <network id> scan_ssid 1

wpa_cli set_network <network id> priority 1 //优先级

保存连接

wpa_cli -i wlan0 save_config //信息保存到默认的配置文件中

1

断开连接

wpa_cli -i wlan0 disable_network <network id>

1

连接已有连接

wpa_cli -i wlan0 list_network //列举保存过得连接

wpa_cli -i wlan0 select_network <network id> //连接指定的ssid

wpa_cli -i wlan0 enable_network <network id> //使能制定的ssid

配置文件示例:

ctrl_interface=/var/run/wpa_supplicant-ath116

network={

ssid="TP-LINK_2.4G_5000"

bssid=82:09:05:76:50:00

scan_ssid=1

proto=RSN WPA

key_mgmt=WPA-PSK

pairwise=CCMP TKIP

psk="12345678"

}

Linux透明网桥

Linux网桥是多端口的虚拟网络设备,透明网桥和交换机的行为一致,只不过网桥是由软件实现的,而且目前只支持以太网。
网桥具有

  1. 转发和过滤

过滤的条件是:Frame目的MAC地址和源MAC地址属于同一段网络
转发的条件是:目的MAC地址为local,往linux协议栈上传;目的MAC地址为broadcast,洪泛到网桥所有端口;目的MAC地址在网桥转发表FDB中可查询到端口,往该端口转发;目的MAC地址不能在转发表中找到,除了Fram的输入端口外,洪泛到所有端口。

  1. MAC地址学习

FDB时网桥转发表是网桥转发时需要查询的表,它可以提高网桥转发效率,把Frame从正确的端口转发出去,而不需要每次都洪泛到所有端口。
首先网桥会把桥接在网桥上的Linxu网络设备(如eth1,ath116)的MAC地址视为local端口,它们的MAC地址条目是永远(static)存储在FDB中的,不会老化
当网桥的端口有Frame输入时,FDB转发表会更新相应的条目,把Frame的源MAC地址和网桥的端口建立映射关系。

FDB里面的条目有老化时间aging time,老化时间的设置是为了有效应对网络拓扑发生变化时的情况。
可以通过brctl命令设置老化时间,还可以使用如下命令查看网桥的MAC地址转发表:

brctl showmacs br0 brctl showmacs br1

  1. 环路检测STP生成树协议

我们的网络拓扑比较简单,未开启

brctl工具使用方法

brctl addbr br1
brctl delif br0 eth1
brctl addif br1 eth1
brctl delif br0 ath116
brctl addif br1 ath116
ifconfig eth1 hw ether 00:0A:EB:13:7B:01
ifconfig br1 hw ether 00:0A:EB:13:7B:01
ifconfig br1 192.168.1.253 up

ip rule和ip route工具使用方法

ip rule add dev br0 table 100
ip rule add dev br1 table 101
ip rule add from 192.168.1.254 table 100
ip rule add from 192.168.1.253 table 101

ip route add 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.254 table 100
ip route add 192.168.1.0/24 dev br1 proto kernel scope link src 192.168.1.253 table 101

iptables工具使用方法

Iptables

iptables的核心概念是链和表:链可以看作是协议栈里的关卡位置,表可以看作是以功能为标准的过滤规则的集合

【链(关卡位置)】:

  • prerouting
  • forward
  • postrouting
  • ipnut
  • output

cfd0e7affed8c847a7efdfb1e478689e.png

上图很形象地描述了链的具体位置,这张图虽然很经典,但很容易被误导,需要注意的是其实它包含了三种典型应用场景的报文流向:

  1. 到本机某进程(socket)的报文: prerouting --> input --> 某进程
  2. 由本机某进程(socket)发出的报文(通常为响应报文):某进程 --> output --> postrouting
  3. 由本机转发的报文: prerouting --> forward --> postrouting (主机充当路由器功能,Linux内核需要启用IP_FORWARD才会转发报文)

【表】:具有相同功能规则的集合。iptables定义了4钟表,每种表对应了不同的功能,它们分别是:

  • filter表:负责过滤功能
  • nat表:网络地址转换功能,说白了就是对IP网络地址进行映射和修改
  • mangle表:拆解报文、做出修改、重新封装;设置标记mask用作后续处理判断
  • raw表:?

网上有很多教程都会描述每条链中有哪些表,我认为这些不用记也记不住属于次要信息。如果确实需要知道或者使用的话可以查询下表:

c56ae32e5dc477a4642f20b7a2f9eff8.png

851d3e8c45dea892c155c9db9c4e2519.png

主要信息是“表”的匹配处理的优先顺序:raw --> mangle --> nat --> filter

【过滤规则/方式】
Coder最熟悉/最重要的那一套:对经过的报文匹配“条件”,如果条件满足然后执行对应的“动作”
基本匹配条件:

  • 源MAC地址: Source MAC
  • 目的MAC地址:Destination MAC
  • 源IP地址: Source IP
  • 目的IP地址: Destination IP
  • 源端口号: Source Port
  • 目的端口号: Destination Port

扩展匹配条件:

  • 协议类型:Protocol
  • 入口网卡:Phy-in
  • 出口网卡: Phy-out

处理动作:

  • ACCEPT: 允许数据包通过
  • DROP:直接丢弃数据包,不给任何回应信息
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息
  • SNAT:源地址转换
  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变得IP上
  • DNAT:目标IP转换
  • REDIRECT: 在本机做端口映射
  • LOG:在/var/log/messages文件中记录日志信息
  • MARK: 做标记,可进行后续处理判断

【iptables命令基础】
命令格式:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

选项

  • -t<表>:指定要操纵的表;
  • -A:向规则链中添加条目;
  • -D:从规则链中删除条目;
  • -i:向规则链中插入条目;
  • -R:替换规则链中的条目;
  • -L:显示规则链中已有的条目;
  • -F:清楚规则链中已有的条目;
  • -Z:清空规则链中的数据包计算器和字节计数器;
  • -N:创建新的用户自定义规则链;
  • -P:定义规则链中的默认目标;
  • -h:显示帮助信息;
  • -p:指定要匹配的数据包协议类型;
  • -s:指定要匹配的数据包源ip地址;
  • -d:指定要匹配的数据包目的ip地址;
  • -j<目标>:指定要跳转的目标;
  • -i<网络接口>:指定数据包进入本机的网络接口;
  • -o<网络接口>:指定数据包要离开本机所使用的网络接口。
# iptables 
iptables -t nat -F
iptables -t nat -A PREROUTING -s 192.168.1.222 -d 192.168.1.111 -j DNAT --to-destination 192.168.1.11
iptables -t nat -A POSTROUTING -s 192.168.1.11 -d 192.168.1.222 -j SNAT --to-source 192.168.1.111

iptables -t nat -A PREROUTING -s 192.168.1.11 -d 192.168.1.22 -j DNAT --to-destination 192.168.1.222
iptables -t nat -A POSTROUTING -s 192.168.1.222 -d 192.168.1.11 -j SNAT --to-source 192.168.1.22 

iptables -t nat -A PREROUTING -s 192.168.1.22 -d 192.168.1.11 -j DNAT --to-destination 192.168.1.111
iptables -t nat -A POSTROUTING -s 192.168.1.111 -d 192.168.1.22 -j SNAT --to-source 192.168.1.11

iptables -t nat -A PREROUTING -s 192.168.1.111 -d 192.168.1.222 -j DNAT --to-destination 192.168.1.22
iptables -t nat -A POSTROUTING -s 192.168.1.22 -d 192.168.1.111 -j SNAT --to-source 192.168.1.222

# arp
ip neigh add 192.168.1.11 lladdr 02:0a:eb:13:7b:00 nud permanent dev br0
ip neigh add 192.168.1.22 lladdr 02:0a:eb:13:7b:01 nud permanent dev br1


# iperf跑流命令:5条流,TCP窗口为128K
iperf3 -c 192.168.1.254 -P 5 -w 128K

iperf3跑流优化的方法(文章的关键在于中断和iperf用户进程的CPU占用的合理分配和优化):

40G/100G Tuning​fasterdata.es.net

查看Linux系统信息

进程文件夹
# /proc

查看总终端情况
# cat /proc/interrupts

查看软中断情况
# cat /proc/softirqs

让中断号245绑定CPU1,让中断号246绑定CPU0
# echo 1 >  /proc/irq/245/smp_affinity_list 
# echo 0 >  /proc/irq/246/smp_affinity_list

查看CPU的占用情况
# mpstats -P ALL 2

把进程绑在某个CPU核心上
# taskset -p 1 iperf_pid
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值