首先就是配置frp相关服务

主要参考  https://gofrp.org/zh-cn/docs/setup/


下载 frp  https://github.com/fatedier/frp/releases/download/v0.57.0/frp_0.57.0_linux_amd64.tar.gz

解压 tar -zxvf frp_0.57.0_linux_amd64.tar.gz

配置与安装  主要涉及3台机器

首先是公网vps上面的安装 直接使用systemd 安装成服务  好管理

$ sudo vim /etc/systemd/system/frps.service


写入的内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml  #一定主要这里的路径 写正确
[Install]
WantedBy = multi-user.target

管理命令

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

#设置开机启动

sudo systemctl enable frps

给被访问的机器(家里的媒体服务器)也同样安装  单位中转的机器也同样安装

现在说配置

vps公网的配置文件frps.toml文件内容

bindPort = 7000

记得在防火墙以及安全策略等 打开7000端口

家庭媒体服务器,需要先配置好在8080端口能正常访问的web目录浏览功能,然后配置frps的frpc.toml文件配置

serverAddr = "公网ip"
serverPort = 7000

[[proxies]]
name = "p2p_web"
type = "xtcp"
# 只有共享密钥 (secretKey) 与服务器端一致的用户才能访问该服务
secretKey = "a1234567980"  #记得设置复杂点
localIP = "127.0.0.1"
localPort = 8080

单位中转机器或者直接访问的机器配置

serverAddr = "公网ip"
serverPort = 7000

[[visitors]]
name = "p2p_movie"
type = "xtcp"
# 要访问的 P2P 代理的名称
serverName = "p2p_web"
secretKey = "a1234567980"
# 绑定本地端口 写ip而不写127.0.0.1是因为本机配置了其它web服务
# 并且运行 apache2 服务,所以用一个ip转发代理即可,其它ip还有用
bindAddr = "10.42.170.225"
bindPort = 8080
# 如果需要自动保持隧道打开,将其设置为 true
# keepTunnelOpen = false

这些都配置好后,在浏览器访问 http://10.42.170.225:8080 就应该能够 打开家庭的媒体服务了。

如果想在单位局域网访问的时候去掉端口号 或者夸网段(中转机器装有多张网卡)访问,那么就继续配置apache2的代理

启用apache2代理模块

sudo a2enmod proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html

然后给 apache2 添加虚拟主机

<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName 10.42.170.225
    ServerAlias 192.168.2.47
        # Servers to proxy the connection, or;
        # List of application servers:
        # Usage:
        # ProxyPass / http://[IP Addr.]:[port]/
        # ProxyPassReverse / http://[IP Addr.]:[port]/
        # Example: 
    ProxyPass /  http://10.42.170.80:8080/                
    ProxyPassReverse / http://10.42.170.80:8080/ 
</VirtualHost>

重启 apache2 服务后,应在局域网通过 http://10.42.170.225 和  http://192.168.2.47 都能访问了


另外说说 如何 两个客户机器如果都装有frpc,在配置ssh服务的时候 它们俩链接的是同一个公网服务器,所以ssh服务的配置名不能相同,远程端口号也应不同

serverAddr = "公网ip"
serverPort = 7000

[[proxies]]
name = "home-ssh"  # 这个名字家里和单位的两个客户机器不应该相同
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 2222  # 这个远程端口号 两个客户机器也不应该相同

目前记录到此