frp内网穿透服务搭建


目录
  • 公网服务器配置(服务器为linux)
    • 【扩展】方式二启动:配置使用systemctl来控制启动
  • 内网linux机器
  • 内网windos机器
    • 参考

官方文档地址

服务下载

linux环境

windows环境

必要条件:一台可以被DNS服务解析的服务器,也就是具有公网ip的服务器

公网服务器配置(服务器为linux)

  • cd进入frp文件目录

  • 修改frps服务端配置【frps.ini】如下:

# 公共配置
[common]
# 与frpc客户端的通信端口
bind_port = 7000
# [可以不配置]用于监听用户端的请求
# vhost_http_port = 8080
# frps服务端web页面仪表盘
dashboard_port= 8082
dashboard_user= 用户名
dashboard_pwd= 密码
  • 添加执行权限 chmod 777 ./frps

后台启动命令:nohup 绝对路径/frps -c 绝对路径/frps.ini &

  • 服务器开放要映射内网服务的端口
    • 内网有多少服务需要映射就开放多少个端口供frpc客户端使用
    • frpc客户端在配置文件frpc.ini中指定remote_port就是上面公网服务器开放的端口

添加端口

firewall-cmd --permanent --zone=public --add-port=端口/tcp

关闭端口

firewall-cmd --permanent --zone=public --remove-port=端口/tcp

其中permanent表示永久生效,public表示作用域,8080/tcp表示端口和类型

查看

firewall-cmd --list-ports

常见端口操作

【扩展】方式二启动:配置使用systemctl来控制启动

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

打开自启动sudo systemctl enable frps

  • 启动frps sudo systemctl start frps

  • 重启frs应用sudo systemctl restart frps

  • 停止frps应用sudo systemctl stop frps

  • 查看frps应用的日志sudo systemctl status frps

内网linux机器

此处为linux环境

  • cd进入frp文件目录

  • 修改frpc客户端配置【frpc.ini】如下:

# 公共配置
[common]
# 公网服务器的ip地址
server_addr = 公网服务器ip
# 与frps服务端通信的端口
server_port = 7000

# [web001] 映射服务的name,需要唯一
[web001]
# 通信类型
type = tcp
# 内网机器本地要暴露到公网服务端口号
local_port = 9111
# 指定公网服务器映射的端口号
remote_port = 8080
# 效果就是用户访问公网服务器ip:8080即可映射到内网机器的9111端口,实现内网穿透

# 可配置多个[name]不重复即可
[web002]
type = tcp
local_port = 8080
remote_port = 8081
# 效果就是用户访问公网服务器ip:8081即可映射到内网机器的8080端口,实现内网服务穿透到公网
...
  • 添加执行权限 chmod 777 ./frpc
  • 内网机器启动frpc客户端nohup ./frpc -c ./frpc.ini &

内网windos机器

关闭防火墙

在frp目录下进入cmd命令行

启动命令.\frpc -c .\frpc.ini

配置未发生变化

参考

主要参考:

frp配置实现转发多个http站点

协议转换、dashboard仪表盘web服务

frp + nginx 配置多人共用的http 内网穿透服务

jobs  # 查看使用nohup cmd & 运行的后台服务有哪些
# 后台启动一个服务
nohup command > nohup.out 2>&1 &