php linux ip 和 mac ip 终于互通了

折腾了好久,终于将linux 的ip和mac 的ip互通了。 build top of reactphp-framework/bridge

当然使用openv-p-n 和 wireguard 也能互通,还能多平台,但它不是PHP!

源码 https://github.com/reactphp-framework/bridge-tun

require

install

composer create-project reactphp-framework/bridge-tun bridge-tun dev-master

run

server run

first generate config file

php index.php -u

then run server

php index.php -s 8010 ./tun.txt

client run

uuid in the config file

php index.php -c server_ip:8010 xxxxx_uuid

其它

一切皆是流文章中,用PHP实现了两个客户端的信息交流,在此基础上如果用PHP能实现读写tun设备,那么一切就很简单了。

幸好有好心人已经实现了linux下的php tun 扩展,但没有mac 下的扩展。

那么比葫芦画瓢,经过一番学习PHP扩展的基础知识后,能成功的在mac上安装tun扩展了。

有了tun扩展那么在 github.com/reactphp-framework/brid... 的基础上编写逻辑代码,就可以实现互通了,github.com/reactphp-framework/brid... 做的就是这个事情。

遇到的坑

开发完成后 linux 和linux 的ip可以互相ping通,但linux和mac的ip 互相ping不通。

不断的寻找资料,网上发问,用wireshark 和tcpdump抓包等方式。

最后发现是linux tun 接口和mac 的utun接口的前4个字节不一样,将其根据平台适配后,终于ping通了。

2024-02-20 下载1G大文件测试

一个tcp连接能把5M带宽打满
1
1

1

本作品采用《CC 协议》,转载必须注明作者和本文链接
Make everything simple instead of making difficulties as simple as possible
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

不懂就问,这个通了可以干什么用呢。 也就是说 Linux 下 tun 是可以互通的,mac 下 PHP 还需要装个特定扩展,来兼容,才可以互通。

2个月前 评论
jcc123

@Tacks 有什么用: 用PHP实现ip组网(linux和mac)

另外 linux 和mac都需要安装扩展,PHP并没有直接去创建tun设备并返回读写资源的方法,需要扩展来提供。

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!