实验室服务器没有公网IP,但是有时候又需要在外网下远程连接跑代码。zqdhf之前一直用frp做内网穿透,我也学习一下~~
参考:https://www.iplaysoft.com/frp.html
项目地址:https://github.com/fatedier/frp
首先在内网需要有运行Frp 的客户端,我这里就是实验室的服务器了
其次要有运行Frp 的服务端,它需要有公网IP,我这里用的是阿里云九块九的学生机
内网穿透工具有很多,其中 Frp (Fast Reverse Proxy) 是比较流行的一款。FRP是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现公网 ←→ FRP(服务器) ←→ 家庭内网的连接,让内网里的设备也可以被公网访问到。
修改frps.ini:
[common]bind_port = 9000 token = 123456vhost_http_port = 9003 bind_port 设置了 frp 服务器用户接收客户端连接的端口token 和客户端一致vhost_http_port 设置监听 HTTP 请求端口为 8080 2.3 安全组开放指定的端口:以阿里云为例,根据上面的配置以及下面客户端的配置,我开放的是9000、9003和6000端口(9000是监听端口,9003是访问我web服务的端口,6000是ssh连接端口,具体在后面内网机器配置中):
启动成功:
修改frpc.ini:
[common]server_addr = 公网IPtoken = 123456server_port = 9000 [ssh]type = tcplocal_ip = 127.0.0.1local_port = 22remote_port = 6000[web]type = httplocal_port = 9003custom_domains = 公网IP或域名 server_port 与服务端的bind_port 相同 3.2 启动 FRP 客户端:Frp 的客户端程序 frpc (frpc.exe) 与服务器端都在同一个压缩包里, 我们同样下载安装对应系统版本的软件包。
运行:
我们使用 ubuntu Linux下常用的进程管理器supervisor来管理FRP服务。
首先需要安装supervisor。 sudo apt install supervisor 然后在/etc/supervisor/conf.d下新建一个配置文件frp.conf,输入以下内容。command应该是你放置frp软件的位置。 [program:frp]command = /root/frps -c /root/frps.iniautostart = true 然后启动supervisor,如果事先已经安装好了supervisor那么就重新启动。之后查看一下supervisor的运行状态,看看frp是否已在运行。 # 启动supervisorsudo systemctl start supervisor# 重启supervisorsudo systemctl restart supervisor# 查看supervisor运行状态sudo supervisorctl status 查看frp是否启动 ps aux | grep frp