内网穿透
内网穿透
内网穿透,简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。 内网是不能被外网直接访问的,只能通过一些中转技术,如DingTalk Design CLI、花生壳、Natap 等工具,让内网“假装”成外网,就是内网穿透。
花生壳
国内老牌内网映射品牌,有较成熟的
可以做域名映射等。
工具使用简单,流量烧钱,成熟品牌,价格较贵。
花生壳官网
花生壳控制台
FRP
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
github.com/fatedier/frp
下载地址
FRP说明文档
樱花内网穿透-自用
SAKURA FRP
目前发现比较便宜的二次开发FRP
Padavan固件路由器内网穿透
使用花生壳内网版
点击开,需要等一会才可以读取到目前设备的SN。
然后去花生壳官网。
然后购买服务就额可以了。
有6块的新人券,但是速度和流量进行了限制,可以用作偶尔的登录页面管理,可以采用。
博主到此为止没有尝试(太贵了)。
使用FRP
目前发现版本BUG,指定版本不太好用。
可以用来当做服务器,但是使用第三方服务的时候不通。
默认参数文件位置:/etc/storage/frp_script.sh
贴默认启动参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #!/bin/bash export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin' export LD_LIBRARY_PATH=/lib:/opt/lib killall frpc frps rm -f /dev/null ; mknod /dev/null c 1 3 ; chmod 666 /dev/null; mkdir -p /tmp/frp #启动frp功能后会运行以下脚本 #frp项目地址教程: https://github.com/fatedier/frp/blob/master/README_zh.md #请自行修改 token 用于对客户端连接进行身份验证 # IP查询: http://119.29.29.29/d?dn=github.com
cat > "/tmp/frp/myfrpc.ini" <<-\EOF # ==========客户端配置:========== [common] server_addr = xxx server_port = xxx token = xxx tls_enable = true pool_count = 1
#log_file = /dev/null #log_level = info #log_max_days = 3
#[web] #remote_port = 6000 #服务端开放的端口 #remote_port = 6000 #type = tcp #local_ip = xxx #local_port = 80 #subdomain = test
[***] type = http local_ip = xxx local_port = 80 subdomain = test use_compression = true
[nas] 我的nas type = tcp local_ip = xxx local_port = 5000 remote_port = 5000 #host_header_rewrite = 实际你内网访问的域名,可以供公网的域名不一致,如果一致可以不写 # ==================== EOF #请手动配置【外部网络 (WAN) - 端口转发 (UPnP)】开启 WAN 外网端口 cat > "/tmp/frp/myfrps.ini" <<-\EOF # ==========服务端配置:========== [common] bind_port = 7000 dashboard_port = 7500 # dashboard 用户名密码,默认都为 admin dashboard_user = admin dashboard_pwd = admin vhost_http_port = 88 token = subdomain_host = frps.com max_pool_count = 50 #log_file = /dev/null #log_level = info #log_max_days = 3 # ==================== EOF #启动: frpc_enable=`nvram get frpc_enable` frpc_enable=${frpc_enable:-"0"} frps_enable=`nvram get frps_enable` frps_enable=${frps_enable:-"0"} if [ "$frpc_enable" = "1" ] ; then frpc -c /tmp/frp/myfrpc.ini 2>&1 & fi if [ "$frps_enable" = "1" ] ; then frps -c /tmp/frp/myfrps.ini 2>&1 & fi
|
使用第三方FRP-樱花内网为例
开启路由器ssh登录
注意开启ssh后,设置路由器端口转发设置。
外部网络(WAN)→端口转发,注意打开端口。
检查路由器处理器
使用ssh登录到路由器后台
确认处理器架构
输出 |
架构 |
i386,i686 |
i386 |
x86_64 |
amd64 |
arm,armel |
arm_garbage |
armv71,armhf |
armv7 |
aarch64,armv81 |
arm64 |
mips |
mips |
mips64 |
mips64 |
小米3路由器→mips
确认处理器字节序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| # 一般来说只需要使用这条命令: echo -n I | hexdump -o | awk '{print substr($2,6,1); exit}'
# 如果上面的命令报错,请尝试这条: echo -n I | od -to2 | awk '{print substr($2,6,1); exit}' ````
| 输出 | 架构 | | :-: | :-: | | 0 | mips/mips64 | | 1 | mipsle/mips64le |
这一步指的是小端还是大端,可以直接查询路由器制造商或者百度。
小米3路由器→小端
所以最终确定的是`mipsle`
#
前往[natfrp-download](https://www.natfrp.com/tunnel/download)下载
{% asset_img 下载及上传适合系统的frp包-1.png 下载及上传适合系统的frp包-1 %}
>注意Padavan系统不同于常规的linux,不能使用weget方式下载软件包,还需要打开文件传输软件进行上传。
>Padavan的系统(或者说目前刷路由器,非软路由,可用的系统里)大部分目录都是重启即丢失的。 >frp添加到/etc/storage目录下,并且烧录,使其重启可用。
更改下载后的文件名字变为`frpc`
上传至`/etc/storge/bin`中
注意修改文件权限为755
在该文件夹下运行
```shell frpc -v
|
查看软件版本
FRP服务器配置
本地ip填写要转发的设备,我选的是NAS做登录页面测试转发。
访问密码随机生成。
对于FRP的配置,如果是上游原生的FRP软件,会根据对应的版本进行生成配置。生成的配置需要手动去调配,就比如Padavan系统内置的FRP,需要手动配置。
樱花第三方的包有一键配置功能,例如点击某个隧道的配置。
1 2
| frpc -f wdnmdtoken666666:12345 & # &放在后台运行
|
使用 启动参数 启动 frpc,只需要在启动参数中加上半角逗号 , 分隔的其他隧道 ID 即可,例如:
1 2
| frpc -f <访问密钥>:<隧道ID 1>[,隧道ID 2[,隧道ID 3...]] frpc -f wdnmdtoken666666:114514,114515,114516
|
此时回到路由器的ssh,执行命令,开启frpc。
然后会提示隧道启动成功,这时候可以通过提供的域名端口进行访问测试。
注意路由器报打开端口转发。
对于已经建立并且成功的隧道,官网前方灰色按钮会变绿。
对于http链接,第一次访问还需要认证。
可以授权固定ip访问该隧道。
到这一步已经跑通了所有流程。
还可以运行
使用秘钥登录后可以直接进行
路由配置
第三方配置
由于Padavan系统的特殊性,关键目录以外的目录均为 tmpfs ,可以理解为是把数据暂存在内存上。因此在/etc/storage目录里所做的修改,如果没有执行保存脚本,就并没有真正的写入 Rom 里,重启之后文件还会丢失。
完成上述测试后,确定没有问题,可以进行烧录。
选择“保存/etc/storage/内容到闪存”的提交。
重启路由器,检查文件是否还在
设置开机自启
高级设置→自定义设置→脚本→在路由器启动后执行
1 2
| #启动樱花FRP /etc/storage/frpc -f xxx:xxx &
|
查询所有服务
1
| systemctl list-units --all "frpc@*"
|
开机自启没有采用
使用自带FRP
检查版本 贴配置就行
最终Padavan0.6.0
FRP客户端配置
查看隧道日志:
1 2
| journalctl -u <Unit名称> journalctl -u frpc@wdnmdtoken666666:12345
|
如果当前窗口无法显示所有日志,可以用 ↑、↓ 方向键滚动,输入大写的 G 跳转动到日志底部,输入 q 退出日志查看。
参考链接
如何正确配置Padavan老毛子frp的frp_script客户端
OpenWrt、Padavan 下 frp 服务和客户端的配置
Padavan自己增加frp并排除故障
Unbutu内网穿透
安装FRP客户端
宝塔面板内置
设置开机自启动
设置宝塔开机启动
设置开机自启:
1 2 3 4 5 6 7
| systemctl <enable|disable> <Unit名称> systemctl status <Unit名称>
systemctl enable frpc@wdnmdtoken666666:12345 systemctl status frpc@wdnmdtoken666666:12345
systemctl enable frpc@tf7be1xpwaxpugip67ddu59eifs433fn:17294766
|
配置文件
同上
宝塔内网穿透
使用第三方插件安装
安装FRPs
后台7500可以看到连接数
然后在别的机器上使用FRPc即可
也有win端,可以实现本地端口的公网映射
如果使用的是阿里云或者腾讯云的服务器
流量包月模式可以不收费
第三方的穿透服务会收费
备注
ONVIF转发因为涉及到http所以只能发请求,但是没有回应就不行。
对于视频流可以利用rtsp承载,带账号密码的输入,就可以持续的穿透转发。