很久没有更新内容了,主要原因是在目前LLM的发展形势下,大部分技术问题,与其在互联网搜索答案,直接问AI,甚至直接使用Agent解决才是最高效的方式。所以慢慢的也就懒得再记笔记了。但是这并不是一个好的做法,因为通过AI解决的问题并不能直接的累积成个人的知识或经验,在下次遇到同样或类似的问题时,还是需要问AI,这样不停增强的依赖令我感到不安。因此,利用难得的国庆假期,我决定重新开始维护这里,至少让在这个时代,为自己保留一份独立的记录(也顺便省一些token的费用)。

方法来源:Kimi

之前一直在使用Zerotier保持自己的台式机可以被远程访问到,但是它在国内的稳定性和速度已经几乎没有可用性而言了,因此我向Kimi提问并选择了一个相对简单的解决办法,利用VPS和frp,进行内网穿透。(我没有选择Tailscale之类的Zerotier替代方案是因为这样的虚拟局域网如果直接使用第三方的服务器,还是会面临无法连接的问题,自己本地部署中继,似乎对于我的这样简单需求而言又有些太过了)选择的工具确定了,具体操作就比较简单了

服务器端部署frps

  1. 下载frp:https://github.com/fatedier/frp/releases

  2. 解压文件

tar xvf frp_<version>.tar.gz
cd frp_<version>
  1. 准备服务器端配置文件frps.toml
# file: frps.toml
bindPort = xxxx              # frpc 连过来的端口
auth.token = "换成一段强随机字符串"   # 防陌生人连你的 frps

# 可选:Web 面板,方便看哪些客户端在线
webServer.addr = "127.0.0.1"
webServer.port = yyyy
webServer.user = "用户名"
webServer.password = "另一个强密码"
  1. 安装frps可执行文件并设置systemd常驻
sudo cp frps /usr/local/bin
# file: /etc/systemd/system/frps.service
[Unit]
Description=frp server
After=network.target

[Service]
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
  1. 在/etc中创建配置文件夹并复制配置文件
sudo mkdir /etc/frp 
sudo cp frps.toml /etc/frp/
  1. 启动frps服务
sudo systemctl enable --now frps
  1. 放行对应端口(frps.toml中的xxxx和yyyy两个端口,以及准备用于转发台式机用的端口zzzz)
sudo ufw allow xxxx/tcp
sudo ufw allow yyyy/tcp
sudo ufw allow zzzz/tcp

如果vps提供商对于端口访问有额外限制,需要进一步在提供商的一侧打开端口。

本地部署frpc

本地端的设置与服务器基本对称

  1. 下载frp:https://github.com/fatedier/frp/releases

  2. 解压文件

tar xvf frp_<version>.tar.gz
cd frp_<version>
  1. 准备客户端配置文件frpc.toml
# file: frpc.toml
serverAddr = "VPS公网IP"
serverPort = xxxx
auth.token = "和服务端一致的token"

[[proxies]]
name = "服务器的名称"
type = "tcp"
localPort = 22
remotePort = zzzz        # 对外暴露的端口:SSH VPS的zzzz = 连家里22
  1. 安装frpc并设置systemd
sudo cp frpc /usr/local/bin/
# file: /etc/systemd/system/frps.service
[Unit]
Description=frp client
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
  1. 配置文件
sudo mkdir /etc/frp 
sudo cp frpc.toml /etc/frp/
  1. 启动服务
sudo systemctl enable --now ssh # 如果没有启动ssh的话,别忘了启动

sudo systemctl enable --now frpc
  1. 安全加固(关闭密码登录)
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd