零.延迟
低情商:卡 高情商:犹如国际级服务器hypixel般的体验 勉强能玩吧
网站倒是还算流畅的
一.前戏
1.设置端口
面板左侧 Port reservation→+Add port (如图)
一共可以创建三个,这里记作端口A B C,后面会用到
2.打开允许自己的软件
Additional services 选项卡中找到 Run your own applications 项目,将其设置为 Enabled 即可。如果不开启这一项,自己的用户目录下的所有文件都无法添加可执行权限。
如果你是在ssh之后才设置的这个选项,记得要重新ssh链接一遍,不然依然无法添加权限
3.安装pm2
在 SSH 连接 serv00 之后,直接使用一键脚本安装 pm2+全局调用
bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh) && source ~/.bashrc
目前有bug,每次重新ssh不会自动读取.bashrc,所以每次ssh链接都要重新
source ~./bashrc
当然你也可以路径调用
~/.npm-global/bin/pm2
二.好戏开场了
1.安装frp
建议手动下载frp_版本号_freebsd_amd64.tar.gz后进去panel左侧的File manager后上传,使用wget可能会更新不及时
wget https://github.com/fatedier/frp/releases/download/v0.56.0/frp_0.56.0_freebsd_amd64.tar.gz #截止2024/3/30版本为0.56.0
解压并重命名并赋予权限
tar -zxvf frp_0.56.0_freebsd_amd64.tar.gz && mv frp_0.56.0_freebsd_amd64 frp && chmod 777 frp
接着在你的本地客户机上下载对应系统版本安装包解压备用
2.编辑服务端配置文件
这边依然建议在本地写好后上传(才不是因为我不会使用freebsd里的在线编辑呢)
新建一个文本文档,把下面写入后保存为frps.toml
bindPort = A
vhostHTTPPort = B #如果你不需要http(s)穿透可以只写上面那行
auth.token = "123456" #可选 链接密钥,为string类型,建议加上以防别人链接
然后上传至serv00的那个frp文件夹中(记得先把原来的frps.toml删掉)
just like this
3.编辑客户端配置文件
这次要改名为frpc.toml
serverAddr = "114.514.1919.810" #这串端口下面再细说
serverPort = A
auth.token = "123456" #你刚才在frps.toml中设置的密钥
#tcp/udp穿透实例
[[proxies]] #这里理论上可以改,但是改了就连接失败,建议别动
name = "abcde" #这里可以随便写
type = "tcp" #或者改成udp
localIP = "127.0.0.1" #本地地址
localPort = 25565 #本地要穿出去的端口
remotePort = C #如果你要udp,开放C端口时记得选择udp
#http(s)实例
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080 #本地网站的端口
customDomains = ["example.serv00.net"] #这个域名下面细说
#你也可以同时穿透多个网站
[[proxies]]
name = "web2"
type = "http"
localPort = 8080 #不写localIP默认为127.0.0.1
customDomains = ["www.yourdomain2.com"] #与上面不同的域名
先说"serverAddr",这个端口在panel点击左侧的SSL,然后点WWW websites,下面的两个ip任选其一
"customDomains"部分,panel左侧点击WWW Websites,然后点击Add new website,然后像我这样写
然后放到一个文件夹内
3.5绑定自己的域名
①用argo隧道(不会)
②手动绑定
先在你的域名的dns记录里A解析到serverAddr中填的那个ip,然后在panel面板刚才创建域名中Domain写A解析的你自己的域名,其他不变点添加
然后在SSL→WWW websites→serverAddr中填的ip的那个manage→serverAddr
Type选Certificate file的话下面就上传cf的证书,Certificate上传.pem Key上传.key,下面域名选择你自己的那个域名.没有证书就在Type选择Generate Let's Encrypt certificate(但是我会报错)(找到报错原因了,这里申请证书cf小黄云要先关闭)
然后在上面的frpc.toml中的customDomains把域名改成你自己A解析的那个域名这样你就可以访问了.
4.测试
先在ssh中开启frpc(先cd到frp目录)
./frps -c ./frps.toml
然后在你的客户端中启动frpc(依然先cd到frp目录)
./frpc -c ./frpc.toml #其他系统使用效果相同的命令,比如win:frpc -c frpc.toml
如果成功效果如图
frps
frpc
退出就ctrl+c就行
三.完结散花
1.开机自启
还记得之前装的pm2吗
先在ssh退出frps
然后使用PM2监控
pm2 start -x ./frp/frps -n frp -- -c ./frp/frps.toml
在Panel中找到Cron jobs选项卡,使用Add cron job功能添加任务,Specify time选择After reboot,即为重启后运行。Form type选择Advanced,Command写:
/home/你的用户名/.npm-global/bin/pm2 resurrect
然后在ssh保存pm2任务快照
pm2 save
2.定时ssh
方法①青龙面板(可能有时连不上,建议ssh链接时间调短一点)
添加Linux依赖 sshpass .添加定时任务 其他随意
命令
sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit"
定时规则 1 1 1 * * .这样每月一号自动ssh
方法②自交
进入一个你喜欢的路径(根目录就行,方便就好)新建一个脚本
cat > auto-renew.sh << EOF
#!/bin/bash
while true; do
sshpass -p '密码' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt 用户名@地址 "exit" &
sleep 2592000 #30天为2592000秒 60*60*24*30=2592000 记得修改密码和地址
done
EOF
Copy
添加权限
chmod +x auto-renew.sh
pm2自启动
pm2 start ./auto-renew.sh && pm2 save
四.参考
知乎专栏:一文搞懂frp内网穿透并搭建配置使用(部分内容已过时)
Saika:Serv00搭建各种服务
frp官方文档(谢谢,根本看不懂配置)