Linux 笔记
docker 与 常用服务
docker 运行 redis
docker 运行 mysql
docker 运行 rabbitmq
docker 部署 MrDoc
docker 部署 wallabag
docker 部署 nextcloud
docker 运行 mindmaster
Docker 常见问题及解决
docker 部署 Standard Notes
ipv6 时代家庭网络的安全性思考
Linux 网络工具
frp vs ngrok vs ssh 隧道
树莓派4 搭建 DNS 服务器
tcpdump & goreplay
Deepin Linux
使用 zsh
Deepin Linux 系统优化
使用 deepin-wine 运行 酷狗音乐
intellij idea
使用 eclipse、vscode 替代 idea
idea 字体设置
nginx 常见问题
nginx 跨域问题处理
nginx 转发导致死循环
nginx 修改请求参数
Manjaro Linux
无法从睡眠唤醒问题修复
树莓派
树莓派系统复制
-
+
首页
frp vs ngrok vs ssh 隧道
这里所谓的最快速,有两层含义,其一,部署快,其二,访问速度快。常见的内网穿透,主要有:frp、ngrok,而协议也各不相同,比如 tcp、http、sock5 ## frp vs ngrok frp 可能是内网穿透新秀了,我其实一直在用它,但是用 nextcloud 后,frp 的速度却令我困惑,我先后使用了 frp、ngrok 测试,发现 ngrok 的传输速度更稳定,frp 类似过山车,忽高忽低,最高在 500-600KB 每秒,而 ngrok 却可以稳定在 500-600KB 每秒。 ## GatewayPorts yes ssh 由于是 tcp 协议,自然也可以代理 http、https 流量,我用 ssh 将本地 80 和 443 端口转发到远程后,下载速度居然达到了 1.2M 甚至更高,基本在 1M 以上,所以,毫无疑问,速度最 OK,非 ssh 隧道莫属,但是 ssh 隧道也有问题,那就是不稳定。 如果使用 ssh 隧道,你只需要修改远程主机 `/etc/ssh/sshd_config` 文件里的 `GatewayPorts yes` 去掉注释或者新增即可,另外,客户端安装 autossh,解决 ssh 不稳定问题。 ## 终极之选 frp + tcp 使用 frp 但是协议走 tcp,我发现速度也能达到 ssh 的速度,应该说是几乎能,而 frp 真的很稳定,并且使用了多年,所以,我最终的选择是 frp,但是不要用它自带的 kcp,或者 http 协议,而是 tcp 协议。 ### frp 的最佳配置 server 端的推荐配置 ``` [common] bind_port = 7000 vhost_http_port = 8080 subdomain_host = kpromise.top token = yourTokenHere max_pool_count = 1024 tcp_mux = false ``` client 端的推荐配置 ``` [common] server_addr = xxx.xxx.xxx.xxx server_port = 7000 token = yourTokenHere max_pool_count = 1024 pool_count = 128 tcp_mux = false [tcp-https] type = tcp local_ip = 127.0.0.1 local_port = 443 remote_port = 443 [tcp-http] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 80 ``` 几个注意点 1. `tcp_mux = false` 这个要有,或者删除,但是别用 `tcp_mux = true` 性能好,但是速度慢! 2. 不要使用 kcp 协议,tcp 就好,配合 bbr 即可 3. connect pool 不知是否有用,但是配置后速度稳定多了 4. 协议要用 tcp 我的测试中,tcp 比 http 以及 https 都要快不少! ### 使用 kcptun 加速 frp 实测通过 kcptun 加速 frp 和 开启 bbr 相比,差不多,加速效果微乎其微,但更稳定!!!可以解决一些 frp 莫名其妙的 bug ! kcptun 的 github 地址是:https://github.com/xtaci/kcptun 使用方式可以如下: client.json ``` { "localaddr": ":7000", "remoteaddr": "xxx.xxx.xxx.xxx:7000", "key": "yourPassword", "crypt": "salsa20", "mode": "fast", "conn": 64, "autoexpire": 0, "mtu": 1400, "sndwnd": 2048, "rcvwnd": 512, "datashard": 0, "parityshard": 0, "dscp": 46, "nocomp": true, "acknodelay": false, "sockbuf": 16777217, "smuxbuf": 16777217, "streambuf": 16777217, "smuxver":2, "keepalive": 30 } ``` server.json 跟 client.json 相比 只需要将第一二两行换为: ``` "target": ":7000", "listen": ":7000", ``` 然后就可以通过 `./server_linux_amd64 -c ./server.json` 以及 `./client_linux_arm7 -c ./client.json` 来启动了,此后,你需要修改 frp 客户端的配置, 将 `server_address` 改为 `127.0.0.1` 即可。 参考:https://www.wangjunfeng.com.cn/2019/11/11/kcp-tun-config/ 参考:https://www.cnblogs.com/zhen-android/p/9729803.html
十三
2021年3月11日 00:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码