#需求
大多数情况下我们使用的ip都属于动态分配ip,
如果有一个静态ip, 就可以做很多事
- 场景一
将自己的电脑变成服务器, 可以有无限大的资源 - 场景二
通过ssh远程控制自己的电脑, 将自己本机作为跳板, 非常方便 - 场景三
给客户直接做展示, 打开连接直接连到本机, 安全方便快捷 - 自己脑补
- 我找到了ngrok
- localtunnel 可行
- pagekite
ngrok (已闭源, 收费)
npm install ngrok -g
ngrok http 8080
ngrok http -subdomain=yuluhuang 9999
localtunnel (第三方都不太稳定)
###官网 http://localtunnel.me/
###使用
- npm install -g localtunnel
- lt –port 8000 //lt –help
or lt –subdomain yuluhuang –port 8888
pagekite(有限制)
###官网 https://pagekite.net/
- 下载py文件
- 双击运行
frp (以上都不具实用性)
因为工作需要使用到内网穿透,让远程用户直接访问本地,查看最终效果
之前使用过ngrok, localtunnel, pagekite, 要么不能用,要么不好用,自己部署也很复杂
看到又一款穿透工具 介绍 http://www.sunnyrx.com/2016/10/21/simple-to-use-frp/ ,
官方文档: https://github.com/fatedier/frp/blob/master/README_zh.md
就自己部署了一遍, 发现还是可行的 中文文档也比较详细,我在记录一遍
前提: 你需要一台自己的服务器
- 在客户端和服务器端下载安装包
|-frpc // 客户端
|-frpc.ini // 客户端配置文件
|-frps // 服务端
|-frps.ini // 服务端配置文件
- 配置
frpc.ini1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[common]
server_addr = x.x.x.x # 服务端ip
server_port = 7000 # 端口, 记得打开
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[http_proxy]
type = tcp
remote_port = 5000
plugin = http_proxy
[web]
type = http
local_port = 8109 # 本地应用使用端口
custom_domains = www.blibao.shop # 解析到服务端的域名, 客户端访问 www.blibao.shop:8080即可访问到本地应用,8080需在服务端配置文件中配置
frps.ini1
2
3[common]
bind_port = 7000
vhost_http_port = 8080
- 启动
使用screen让frp在后台运行
下面的示范是运行服务端的frp,客户端就不示范了,前面提过群晖的系统没有screen指令。
首先使用screen指令创建一个会话。
screen -dmS frp
然后进入这个会话。
screen -r frp
最后使用运行frp的指令,在后面加上” &”。(如果之前断开了SSH连接,记得用cd指令进入frp的目录先。)
./frps -c ./frps.ini &
这样就让frp在后台运行了。
- 配置ssh连接本机
frpc.ini1
2
3
4
5
6[ssh]
type = tcp
local_ip = 127.0.0.1
auth_token = 123
local_port = 22
remote_port = 6000
frps.ini1
2
3
4
5[ssh]
type = tcp
auth_token = 123
bind_addr = 0.0.0.0
listen_port = 6000
mac 在共享中打开允许远程连接,设置用户
ssh root@x.x.x.x -p 6000
场景1
利用frp主从备份mongo数据库
场景2
利用frp 副本集 mongo数据库(同理)
问题
- 对架设frps的服务器要求高,不适合同时架设过多连接,大流量容易堵塞,可用于小网站或搭建远程测试环境