内网穿透

想试下内网穿透,尝试后发现,采用阿里云和腾讯云DDNS都会失败,因为没有公网IP,移动是个大内网。
需要有个带公网IP的服务器,用ngrok或者frps进行流量转发
试了试ngrok,在路由器上仍不好用,并且局限较大。
最后采用了frps
服务器搭建借鉴了这篇文章,这篇文章使用的脚本功能齐全相对好用
Frp部署 – 穿透内网,从外网访问内网设备

服务端的安装

1
2
3
wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh    #下载脚本
chmod 755 ./install-frps.sh #赋予权限
./install-frps.sh install #安装脚本

然后脚本开始运行,会让你输入一些配置,直接回车是默认配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Please input frps bind_port [1-65535](Default Server Port: 5443):[7000]
#输入frp提供服务的端口,用于服务器端和客户端通信

Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80):[7080]
#输入frp进行http穿透的http服务端口,建议修改防止冲突呀

Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443):[70443]
#输入frp进行https穿透的https服务端口,建议修改防止冲突呀

Please input frps dashboard_port [1-65535](Default dashboard_port: 6443):[7081]
#输入frp的控制台服务端口,用于查看frp工作状态

Please input dashboard_user (Default: admin):[admin]
#登录控制台的用户名

Please input dashboard_pwd (Default: kpkpM7VZ):[admin]
#登录控制台的密码

Please input privilege_token (Default: 9m2UAOWa6hx5Eise):[admin]
#Frp服务端和客户端的通信密码

下面的内容都是默认即可

到此服务端安装完成。

综上可知,服务端配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
bind_addr = 0.0.0.0
bind_port = 7000
subdomain_host = ddns.example.com #后面加的,配置域名
kcp_bind_port = 7000
dashboard_port = 7081
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 7080
vhost_https_port = 70443
log_file = ./frps.log
log_level = info
log_max_days = 3
privilege_token = admin
max_pool_count = 50
tcp_mux = true

之后需要修改解析,后来就是这个地方出问题,一直没成功。
如果你用来做ddns的域名为ddns.example.com那么需要添加两个A解析,分别将ddns.example.com*.ddns.example.com解析到服务器的IP。
之后就是Padavan路由器的设置了,脚本一直运行不成功。
参考这篇文章使用的脚本解决了问题
Padavan路由器设置frp内网穿透实现外网访问路由器管理页面+外网远程访问内网下的Windows桌面
这篇文章有更详细的配置
[frp] 内网穿透神器搭建 萌新也看得懂的教程系列
我的脚本如下

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
#!/bin/sh
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
mkdir -p /tmp/frp

#启动frp功能后会运行以下脚本
#使用方法请查看论坛教程地址: http://www.right.com.cn/forum/thread-191839-1-1.html
#frp项目地址教程: https://github.com/fatedier/frp/blob/master/README_zh.md
#请自行修改 auth_token 用于对客户端连接进行身份验证
# IP查询: http://119.29.29.29/d?dn=github.com

#客户端配置:
cat > "/tmp/frp/myfrpc.ini" <<-\EOF
[common]
server_addr =******
server_port = 7000
token = admin

#ssh配置
[ssh]
type = tcp
local_ip = ******
local_port = 22
remote_port = 5200

[web-dev]
type = http
local_ip = ******
local_port = 4000
subdomain = t

[web]
type = http
local_ip = ******
local_port = 80
subdomain = r
#假设此项设置为 :router,前面的服务端配置frps.ini时
#将subdomain_host设置为example.com,然后你将
#r.example.com解析到服务端后,可以使用r.example.com:7080
#来访问路由器管理页面。
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 &
fi
if [ "$frps_enable" = "1" ] ; then
frps -c /tmp/frp/myfrps.ini &
fi

FTP内网穿透

Frp 内网穿透 FTP教程 Padavan By Geekman

关于 Frp 配置文件的一些说明

后记

发现很好的论坛
koolshare

文章目录
  1. 1. 服务端的安装
  2. 2. FTP内网穿透
  3. 3. 后记