简单使用ngrok和frp内网穿透

写程序时如果涉及到回调的时候,需要外网能访问到本地程序,所以需要内网穿透技术。技术原理这里不在描述,我这是使用教程。

ngrok

最简单的莫过于ngrok,优点自带子域名直接使用,缺点自定义子域名要钱,服务器在国外不太稳定。

1.注册登录ngrok,到官网下载ngrok,并解压

2.执行ngrok authtoken命令

./ngrok authtoken cadfafaaedada

3.ngrok 和本地端口关联,如8080

./ngrok http 8080

完成后会生成一个子域名,访问子域名就能访问到本地应用

frp

frp自由化极高,缺点需要你拥有个带公网ip的vps

如果是非 root 用户登录服务器,需要前面加 sudo下载最新版 frp

wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz

解压 tar.gz

tar -zxvf frp_0.21.0_linux_amd64.tar.gz

进入 frp 目录,删除多余文件

cd frp_0.21.0_linux_amd64
rm -f frpc frpc_full.ini frpc.ini
配置ip直接访问本地web的 frps.ini
vi fprs.ini
[common]
bind_port = 7100
vhost_http_port = 8888
dashboard_port = 7500
dashboard_user = 设置用户名
dashboard_pwd = 设置的密码

保存上面配置文件,运行服务器 frps

./frps -c ./frps.ini

访问http://你的ip:7500,可以看到你frps简单的ui界面

至此,服务端配置完成,

配置客户端

和服务器类似,下载解压,删除服务器配置文件

cd frp_0.21.0_linux_amd64
rm -f frps frps_full.ini frps.ini
配置ip直接访问本地web的 frpc.ini

server_addr 外网ip地址,local_port本地web应用端口,custom_domains外网ip地址

[common]
server_addr = 你的服务器ip
server_port = 7100

[web] type = http local_port = 80 custom_domains = 你的服务器ip

保存配置文件,运行 fprc

./frpc -c ./frpc.ini
多web配置

多web需要域名,可以申请免费顶级域名


域名服务器dns设置类似如下

配置多web的服务器的 frps.ini

[common]
bind_port = 7200
vhost_http_port = 8888
dashboard_port = 7500
dashboard_user = 你的用户名
dashboard_pwd = 你的密码

subdomain_host = 你的域名 token = 你设置token,客户端的要一致

配置多web的客户端  frpc.ini

[common]
server_addr = vps外网ip地址
server_port = 7200
token = 服务端丢token
[web] type = http local_ip = 127.0.0.1 local_port = 11701 subdomain = api

[web2] type = http local_ip = 127.0.0.1 local_port = 11702 subdomain = web

[web3] type = http local_ip = 127.0.0.1 local_port = 11703 subdomain = yy

可能用到的其他命令

查看占用端口号

netstat -anp|grep 80

杀死应用进程

kill -s 9 1827

后台运行frp服务

服务端:

nohup ./frps -c frps.ini >/dev/null 2>&1 &

客户端:

nohup ./frpc -c frpc.ini >/dev/null 2>&1 &


参考:

https://github.com/fatedier/frp/blob/master/README_zh.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8C%E7%BA%A7%E5%9F%9F%E5%90%8D


https://segmentfault.com/a/1190000016345564

https://github.com/fatedier/frp/issues/287

https://blog.csdn.net/nextyu/article/details/78284663

https://blog.csdn.net/kevinsingapore/article/details/80737446


评论已关闭