文章目录
一. frp服务端
1.1 初始化配置文件
mkdir -p /root/i/docker-compose/frps && cd /root/i/docker-compose/frps
cat <<EOF> frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 8081
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = www19930327
EOF
1.2 docker-compose.yaml
cat <<EOF> /root/i/docker-compose/frps/docker-compose.yaml
version: '3'
services:
frps:
restart: always
image: snowdreamtech/frps
container_name: frps
volumes:
- /root/i/docker-compose/frps/frps.ini:/etc/frp/frps.ini
ports:
- 7000:7000
- 7500:7500
- 8080:8080
- 8081:8081
frpc-web-nginx:
restart: always
image: nginx:1.19.3
container_name: frpc-web-nginx
volumes:
- /root/i/docker-compose/frps/nginx-conf:/etc/nginx/conf.d
ports:
- 80:80
EOF
1.3 部署
docker-compose -f /root/i/docker-compose/frps/docker-compose.yaml up -d
1.4 卸载
docker-compose -f /root/i/docker-compose/frps/docker-compose.yaml down
1.5 web-nginx域名去除端口
因为80
端口被使用,所以http
使用了8080
端口,使用域名时还需要在后面加上8080
端口才能内网穿透,所以使用nginx监听端口,直接使用域名内网穿透
portal-dev.wanfei.wang
cat <<EOF> /root/i/docker-compose/frps/nginx-conf/portal-dev.wanfei.wang.conf
server {
listen 80;
server_name portal-dev.wanfei.wang;
location / {
proxy_set_header Host \$http_host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_pass http://frps:8080/;
}
}
EOF
重启frpc-web-nginx
服务
docker-compose -f /root/i/docker-compose/frps/docker-compose.yaml restart frpc-web-nginx
二. frp客户端
2.1 frpc客户端使用参考
参考 https://blog.youkuaiyun.com/qq_38983728/article/details/103595506
2.2 frpc客户端-Mac
2.2.1 下载客户端
地址 https://github.com/fatedier/frp/releases
首先下载frpc
,选择darwin
的arm64
,Darwin
是指macOS
,适配m1,m2
芯片
解压后修改文件夹为frpc
,删除frps
相关的文件,再创建一个log
文件夹
路径
/Users/wanfei/myMac/ruanJian/frpc
2.2.2 创建frpc.sh
脚本
vi frpc.sh
# 复制下面
#!/bin/bash
FRPC_HOME="/Users/wanfei/myMac/ruanJian/frpc"
client="$FRPC_HOME/frpc"
ini="$FRPC_HOME/frpc.ini"
log="$FRPC_HOME/log"
if [ "$1" = "start" ];then
nohup $client -c $ini > "$log/nohup_frpc.log" 2>&1 &
echo "frpc start success"
elif [ "$1" = "status" ];then
ps aux | grep frpc | grep -v grep | grep -v $1
echo "frpc status success"
elif [ "$1" = "reload" ];then
echo "frpc" `$client reload -c $ini`
elif [ "$1" = "restart" ];then
ps aux | grep frpc | grep -v grep | grep -v $1 | awk '{print $2}' | xargs kill -9
rm -rf "$log/frpc.log"
rm -rf "$log/nohup_frpc.log"
nohup $client -c $ini > "$log/nohup_frpc.log" 2>&1 &
echo "frpc restart success"
elif [ "$1" = "stop" ];then
ps aux | grep frpc | grep -v grep | grep -v $1 | awk '{print $2}' | xargs kill -9
rm -rf "$log/frpc.log"
rm -rf "$log/nohup_frpc.log"
echo "frpc stop success"
else
other_commands="$client $@"
$other_commands
fi
2.2.3 添加脚本权限
打开终端,获得文件夹的权限
chmod u+x /Users/wanfei/myMac/ruanJian/frpc
添加软链到系统变量
sudo ln -s /Users/wanfei/myMac/ruanJian/frpc/frpc.sh /usr/local/bin/frpc
2.2.4 编辑frpc.ini
cat <<EOF> frpc.ini
[common]
server_addr = 公网ip
server_port = 7000
[mac-web]
type = http
local_port = 8089
custom_domains = frp.xxx.xxx
EOF
2.2.5 启动
frpc start
其他命令
- 重启:
frpc restart
- 状态:
frpc status
- 停止:
frpc stop
- 查看日志:
tail -f /Users/wanfei/myMac/ruanJian/frpc/log/nohup_frpc.log