0%

通过 frp 实现内网穿透

1. 简介

frp 是一个高性能的反向代理应用, 可以用来轻松穿透内网, 对外网提供服务, 支持 tcp, http, https 等协议, 并且 web 服务支持根据域名进行路由转发.

frp中文文档

frp源码

frp资源地址

2. 准备

  1. 一台有公网 ip 的服务器, 即非局域网内的主机
  2. 一台需要实现内网穿透的机器
  3. ( 可选项 ) 一个域名

3. 外网服务器配置 ( 这里我用的是Ubuntu )

  1. 下载
1
2
3
4
5
wget https://github.com/fatedier/frp/releases/download/v版本号/frp_版本号_linux_amd64.tar.gz

如我用的 0.21.0 版本则链接如下:
wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
其实到 release 中选择所需包右键复制链接也可以
  1. 解压
1
2
3
4
5
tar -zxvf frp_版本号_linux_amd64.tar.gz

#同时因为是服务端, 并不需要客户端的东西, 可以删除掉
rm -f frpc
rm -f frpc.ini
  1. cd 进 frp 文件夹, 修改服务端配置文件frps.ini ( 使用vim指令修改 )
1
vim fprs.ini

关于 vim 的操作找个机会看一下, 这里用到的只有 i: 输入, esc: 退出编辑模式, :wq 保存退出

1
2
3
4
5
6
7
8
9
10
11
[common]
#这个是 frp 服务器的运行端口号
bind_port = 7000
#这个是http访问端口号
whost_http_port = 8080

# 同时我们可以设置管理端口
dashboard_port = 7500
# 用户名和密码默认为admin
dashboard_user = admin
dashboard_pwd = admin
  1. 启动服务端
1
./frps -c ./frps.ini

4. 客户端 ( 我的台式机上装的是win7 )

  1. 下载安装, 直接从github仓库上下载对应系统并解压, 步骤与服务端的类似
  2. 配置 frpc.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[common]
# 这里填的是服务端的公网 ip
server_addr = xxx.xxx.xxx.xxx
# 这里填的是服务端的运行端口号
server_port = 7000

[web]
type = http
# 这里写 web 程序所在的主机的局域网内的地址, 由于是在台式机上也就是客户端运行的就直接写本地地址127.0.0.1
local_ip = 127.0.0.1
# 这里写 web 程序的端口
local_port = 8080
# 如果有域名,则这里写域名, 且域名要解析到服务端的ip, 如果没有域名则直接写服务端ip. 我穷人没域名就直接用写服务端公网ip
custom_domains = xxx.xxx.xxx.xxx
  1. 运行

在 windows 上, 不能直接双击 frpc.exe运行, 而是要像服务端一样用命令行开启.

在 frp 文件夹中摁住 shift 同时点击鼠标鼠标右键, 选择 “ 在此处打开命令行窗口 “, 输入 .\frpc -c .\frpc.ini (这是 window 下的, 用 , 如果是 linux 则用 /)