/* ----------- 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 101ip 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

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

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

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

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

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

主要信息是“表”的匹配处理的优先顺序: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.111iptables -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.11iptables -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

linux端口映射_Linux命令行工具相关推荐

  1. Linux命令行如何编辑word文档,在Linux平台下用命令行工具显示Word文档

    在Linux平台下用命令行工具显示Word文档 ·Antiword ·Catdoc ·wvWare[@more@] Viewing Word files at the command line Wed ...

  2. linux运行16668端口,Linux 性能监控之命令行工具

    引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...

  3. 拿走不谢!创客学院教你64个Linux运维必备命令行工具

    系统管理员(sysadmins)负责日常维护生产系统和服务.其中一个关键任务就是保证功能性服务能24小时工作.为了这个,他们得很小心地计划备份方式,灾难管理策略,定时维护,安全审查,等等.和任意其他管 ...

  4. Linux自学笔记——OpenSSL命令行工具

    OpenSSL是一个安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能以及ssl协议,并提供程序供测或其他目的使用. 传输层协议:TCP, UDP, SCTP port:进程地址,进 ...

  5. 显示器 Linux 性能 18 (一个命令行工具传递)

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因. ...

  6. linux终端字体放大_微软Build:Windows 将附完整Linux内核,新命令行工具,开源六小时冲上GitHub第二...

    21CTO导读:微软于2016年成为Linux基金会的成员,同时宣布加入OSI,以增加其在宣传开源软件的使用.贡献和发布方面的作用,包括其客户和整个生态系统. 微软还是Linux基金会的"高 ...

  7. linux下的安装命令行工具下载,本地安装DEB包的3种命令行工具(适合Debian体系)

    1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(dpkg.apt和gdebi)在Debian及其衍生产品(如Ubuntu和Linux Mint)中安装本地软件包(. deb). 这对那 ...

  8. linux开源炫酷命令行工具,Linux上超酷的命令行扩展工具Oh My Zsh

    Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式.它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作.给我们一种全新的方式使用命 ...

  9. linux端口映射_Linux 系统安全与优化配置

    目录 1. Openssh 安全配置 1.1. 禁止root用户登录 1.2. 限制SSH验证重试次数 1.3. 禁止证书登陆 1.4. 使用证书替代密码认证 1.5. 图形窗口客户端记忆密码的问题 ...

最新文章

  1. 最小生成树算法MST_kruskal算法
  2. linux mysql进阶_mysql进阶学习二之搭建主从
  3. ES6的导入和导出模块
  4. ORA-10997:another startup/shutdown operation of this instance in progress解决方法
  5. 博弈论探讨及题目总结
  6. Qt工作笔记-代理及自定义委托,实现开关功能
  7. 计算机存储单位字的英语,计算机存储基本单位,位、字节、字以及KB、MB和GB怎么换算?...
  8. php+mysql开发实战 pdf_《PHP + MySQL 开发实战》怎么样_目录_pdf在线阅读 - 课课家教育...
  9. String与字节数组转换
  10. 事实表和维度表是怎么造数据_数据库与数据仓库的那点事
  11. 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
  12. Atitit 指令集(IA及指令集架构 1. 指令集(IA:InstructionSet)是指CPU指令系统所能识别(翻译)执行的全部指令的集合。 1 1.1. (1)运算指令 1 1.2. (2)
  13. 修改PC端微信提示音
  14. nginx配置文件中一些参数的应用
  15. word之无法插入公式,公式图标灰色
  16. 从零开始学习C语言 Day 036
  17. .NET : 一定不要忘记关闭DataReader对象
  18. 设计模式简单RPG游戏设计
  19. 【物联网】物联网开发从入门到精通
  20. 第四章 证券投资基金的监管

热门文章

  1. 我为什么把think in java 读了10遍
  2. 浅谈如何运营地方门户网
  3. Android歌词秀设计思路(3)通用的音乐播放服务(上)
  4. 【计算机毕业设计】html学生管理系统 OA管理系统设计与实现 HTML网页设计结课作业...
  5. pg_enterprise_views 偶然发现的神仙PG插件!!!
  6. 突然想分析下房贷利率及利息计算
  7. ctf misc 拼图图片 gaps安装
  8. 听说你,不想错过。。。
  9. 计算机在幼儿园教育中的应用,信息技术在幼儿园中的运用与思考
  10. LeetCode 42. Trapping Rain Water(收集雨水Ⅰ)