用服务器搭建内网穿透(Frp)

说明

  1. 阿里云服务器
  2. 操作系统 CentOS7

这里不一定要阿里云的服务器,你也可以用其他的,我们需要的是一个公网的IP

内网服务由于没有公网 IP,不能被非局域网内的其他用户访问

这个是我们要用到,上面的介绍更加详细 – 文档:https://gofrp.org/docs/

GitHud中文文档说明:https://github.com/fatedier/frp/blob/dev/README_zh.md

下载

因为这是国外的如果在国内下载是很慢的,用一下插件可以加速下载的,所以你也可以先下载后在上传

下载地址:https://github.com/fatedier/frp/releases


linux版本:https://github.91chi.fun/https://github.com//fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

win版本:https://github.91chi.fun/https://github.com//fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip

#创建文件夹
mkdir /home/software
#下载
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

解压

tar -zxvf frp_0.44.0_linux_amd64.tar.gz

进入文件夹

cd frp_0.44.0_linux_amd64

文件说明

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上

由此可见:
frpc 开头的是 客户端用的
frps 开头的是 服务端用的

用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信

配置

服务端在服务器(Linux)上配置

客户端在 win 上配置

服务端

这个是配置的说明

https://gofrp.org/docs/reference/server-configures/

  • 修改服务端的配置,frps.ini 文件,使用 vim frps.ini
[common]
bind_addr = 0.0.0.0
# 接收 frpc 的连接
bind_port = 7000
# 启用 Dashboard 监听的本地端口
dashboard_port = 7500
# 客户端需要设置一样的值才能鉴权通过
token = frpsadmin
# HTTP BasicAuth 用户名
dashboard_user = frpsadmin
# HTTP BasicAuth 密码
dashboard_pwd = frpsadmin
# 启用后才支持 HTTP 类型的代理,为 HTTP 类型代理监听的端口
vhost_http_port = 1080
# 启用后才支持 HTTPS 类型的代理,为 HTTPS 类型代理监听的端口
vhost_https_port = 1043
启动
./frps -c frps.ini

访问用你的 公网IP:7500

#输入你的设置的用户名和密码
# HTTP BasicAuth 用户名
dashboard_user = frpsadmin			
# HTTP BasicAuth 密码
dashboard_pwd = frpsadmin
后台启动
nohup ./frps -c frps.ini &
#输出如下内容即表示正常运行
nohup: ignoring input and appending output to 'nohup.out'
#此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序
jobs
关闭

查看

netstat -tanlp

会出现好的这样的

tcp 0 0 0.0.0.0:8080 0.0.0.0:* ESTABLISHED 29631/java

关闭使用 找到端口所占进程的pid,在kill掉,ESTABLISHED 29631/java

kill -9 29631
客户端
  • 修改配置文件:frpc.ini,使用 vim frpc.ini

https://gofrp.org/docs/reference/client-configures/


[common]
# 连接服务端的地址,也就是你现在配置服务器(云服务器的)的ip地址
server_addr = x.x.x.x
# 连接服务端的端口
server_port = 7000
# 需要和服务端设置一样的值才能鉴权通过
token = frpsadmin

#  输入 http://127.0.0.1:7600/
# 启用 AdminUI 监听的本地地址
admin_addr = 127.0.0.1
# 启用 AdminUI 监听的本地端口
admin_port = 7600
# HTTP BasicAuth 用户名
admin_user = frpcadmin
# HTTP BasicAuth 密码
admin_pwd = frpcadmin

# 这个将会是你的名字
[RDP]
type = tcp
# 电脑在局域网中的内网 IP (如是本机,也可使用 127.0.0.1)
local_ip = 127.0.0.1
# 你要穿透想 端口号
local_port = 1081
# 服务端的端口号,记得开启放行端口
remote_port = 7001

# 这个将会是你的名字
[DSM]
type = tcp
# local_ip 和 local_port 配置为本地需要暴露到公网的服务地址和端口
local_ip = 127.0.0.1
local_port = 1081
# remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口
remote_port = 7002

启动

服务
双击 frpc.exe 或者使用命令行,我用的命令行是 PowerShell,当然你也可以用其他的

./frpc -c frpc.ini

访问AdminUI 监听的本地地址,这个也是一个管理界面

http://127.0.0.1:7600/

测试

[RDP]

http://39.108.184.79:7001/

[DSM]

http://39.108.184.79:7002/


# 记得将服务器的以上端口放行,不然就...

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐