【iptables】bluetooth自组网

本文探讨了在Linux环境下,使用Bluez5.5实现蓝牙串口与USB的解决方案,详细介绍了串口tty驱动、线程规划及USB的总线作用。分享了通过局域网桥配置、PANU/GN/NAP注册与蓝牙配对,实现局域网内设备互联互通的过程。

一.整体解决的思路

本人使用的是bluez5.5,并成功在俩个虚拟机间成功跑了起来。

具体的原理暂不详细介绍,蓝牙的解决方案硬件上通常分为串口或是USB。

1.串口:

tty驱动<->tty线程规划<->tty核心。

tty驱动主要承担注册字符设备的角色,tty核心则从用户层或是硬件获取数据,重点在于tty线程规划。

线程规划的工作主要是以(bluetooth)协议转换的形式,格式化tty核心接收或发送的数据,再在上层的应用进行操作。

 

Q:在linux系统中,串口应用层的节点基本为/dev/tty*等等,但是在这里却找不到什么相应的节点控制,这是为什么???

S:如果使用过telnet就会知道,在另一台电脑上能够通过telnet命令链接到本机,这里使用的是网络设备的流程。即经由了tty线程规划后的数据,经由tty核心传到网络设备后,进行远程链接。UART更多起到一个数据转换"总线"的作用。

2.USB:

其实USB同样是由其他的驱动实现功能,而USB则也是起到一个总线的作用,利用的是USB完善的架构来进行整合。iptables的具体工作则是在table加入相应的version id与product Id。

二.应用层实现思路

需要自己抽取源码真的不太友好,但使用bneptest官方的示例能正常使用了。根据测试用例的思路是,我所要做的是将局域网桥配置好,以及将PANU,GN与NAP注册进dbus的orz.bluez.NetworkServer1。

传入成功后,需要完成蓝牙配对,hciX下会根据mac生成相应的dev_XX_XX_XX_XX节点,此时可以使用连接。

当然,如果想要完成局域网内访问外网,则需要设置俩个蓝牙设备的IP,以及相应的网桥。网桥我则是通过linux命令设置的。

 

整体的流程。比较讨巧的方法,我是在Bluetoothctl中加入新的命令,将PANU,GN与NAP注册进dbus的orz.bluez.NetworkServer1,这样省去了抠代码的烦恼,连接的同样是参照tools/bneptest.c下实现。

详细过程已积分上传→_→

 

 

PS:感觉做俩完整的项目,才有很大的收获。回成都后才发现,自己的工作跟这边对口的太少,找的工作一直是高不成低不就的,不明白到底为什么面试,总之感谢盆友收留我的狗命,希望下月能找到合适的工作。

 

### 不同 Linux 发行版中配置 iptables 开机自启动的方法 #### Debian 9 中配置 iptables 开机自启动 对于基于 Debian 的系统,在完成 iptables 规则配置之后,可以通过保存这些规则来实现开机自动加载。具体操作为将当前的 iptables 规则保存到 `/etc/network/if-c "iptables-save > /etc/iptables/rules.v4" ``` 此命令会把现有的 IPv4 规则存储起来以便于下次启动时恢复它们。 #### Ubuntu 上设置 iptables 自动加载 Ubuntu 用户可以在完成 iptables 设置后运行 `iptables-save > /etc/init.d/iptables.up.rules` 来保存现有规则至特定文件中[^2]。为了确保每次重启都能应用这些规则,还需要创建或编辑相应的服务单元文件以读取并应用这个规则集。 #### CentOS 使用自定义脚本使 iptables 开机即生效 针对 CentOS 系统,则建议编写一个名为 `set-iptables.sh` 的 shell 脚本来管理 iptables 规则的应用逻辑。在这个脚本头部加入特殊的注释行用于 chkconfig 工具识别,从而将其注册成为系统的初始化进程之一[^3]: ```bash #!/bin/bash # chkconfig: 2345 90 10 # description: set-iptables.sh is a script to set iptables rules. ... ``` 接着利用 `chkconfig --add set-iptables.sh` 添加该脚本进入默认运行级别里去。 #### Deepin 操作系统内让 iptables 启动时激活 在 Deepin 这样的桌面环境中,如果想要某些程序或脚本随计算机一起开启的话,可以考虑采用 `.desktop` 文件的方式来进行部署。只需建立一个新的 `.desktop` 文件并将它放置于用户的 `~/.config/autostart/` 目录之下即可达成目的[^4]。 需要注意的是不同版本之间可能存在差异,因此实际操作前最好查阅官方文档获取最准确的信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值