首先就是配置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 # 这个远程端口号 两个客户机器也不应该相同
目前记录到此