内网穿透

内网穿透

内网穿透

内网穿透,简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。 内网是不能被外网直接访问的,只能通过一些中转技术,如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登录到路由器后台

确认处理器架构

1
uname -m
输出 架构
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`

### 下载及上传适合系统的frp包

前往[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

查看软件版本

1
0.51.0-sakura-8

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访问该隧道。

到这一步已经跑通了所有流程。

还可以运行

1
frpc -w

使用秘钥登录后可以直接进行

路由配置

第三方配置

由于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承载,带账号密码的输入,就可以持续的穿透转发。

文章作者: HibisciDai
文章链接: http://hibiscidai.com/2024/10/22/内网穿透/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
好用、实惠、稳定的梯子,点击这里