本文记录一些简单的 VPS 的安装过程记录和故障排除经验。
国内机器用 Docker
简而言之就是:
1 | # 给 Docker Service 增加一个目录 |
外网 HTTPS 连接超时
纯净 nginx,在 nginx.conf 加入 HTTPS 支持,浏览器访问转很久之后报 CONNECTION_RESET 错误。
在服务器中 wget https://domain
,报连接超时错误;在服务器中 wget https://127.0.0.1
,正常下载到页面 HTML。
系防火墙配置不当导致的故障。发现及解决所涉及的一系列终端命令如下:
1 | firewall-cmd --list-all |
Nginx
按照 DigitalOcean 的教程安装 Nginx。
反向代理
在 /etc/nginx/sites-available 创建 xx.com 的配置文件:
1 | server { |
建立软链接,即执行:
1 | sudo ln -s /etc/nginx/sites-available/xxx.com /etc/nginx/sites-enabled/ |
检查一下配置文件是否都是 OK 的:
1 | sudo nginx -t |
重启 nginx:
1 | sudo systemctl restart nginx |
反代时无法将 URL 后面的东西正确转发给源站
你可以参考下面这个 config 来看看:
1 | location /xxxx/ { |
WinSCP 以 root 权限进入服务器
按照官方教程调一下 Shell 为 sudo 后的 Shell,结果一点登录、都快成功了,却给我弹回登录信息页。经查是因为 sudo 需要再输密码,但 WinSCP 不会干这件事情而导致的。解决方法是让该用户在 sudo 的时候不需要输密码。
根据教程,在 /etc/sudoers 里面添加一行:
1 | username ALL=(ALL) NOPASSWD: NOPASSWD: ALL |
公钥登录
修改 /etc/ssh/sshd_config 文件,禁用密码登录:
1 | PasswordAuthentication no |
重启 SSH 服务:
1 | sudo systemctl restart sshd |
可自定义回源端口的 CDN
有一些 NAT 小鸡没有 80/443 端口用,因此外网只能通过其它端口访问 HTTP(S) 服务。但这样对于用户来说并不直观,外面套一层 CDN 作反代隐藏一下真实端口是一个好的选择。免费版的 Cloudflare 并不能实现上述需求,因此只能另寻他路。
- CDN/DNS:Arvancloud
自定义回源端口
在 DNS Records 页面,按照下图设置即可。
ACME.sh
在 Arvancloud 后台 - Settings - API Keys 中可以生成一个 API Key,格式形如「Apikey xxxx-xxxx-xxxx-xxxx」。
在安装好 acme.sh 的服务器上运行:
1 | export Arvan_Token="Apikey xxxx-xxxx-xxxx-xxxx" |
即可成功签发证书。安装证书的指令如下:
1 | acme.sh --install-cert -d xxx.jonbgua.com -d *.xxx.jonbgua.com --key-file /home/USERNAME/nginx/ssl/xxx.jonbgua.com/xxx.jonbgua.com.key --fullchain-file /home/USERNAME/nginx/ssl/xxx.jonbgua.com/xxx.jonbgua.com.crt --ca-file /home/USERNAME/nginx/ssl/xxx.jonbgua.com/xxx.jonbgua.com.ca.crt --reloadcmd "sudo systemctl restart nginx" |
Cloudflare WARP
一启动 WARP 就直接 SSH 不上机器了(内外网 IP 和 Tailscale IP 都不行),只能通过 vCenter 访问到。看到 这篇 博客发现是需要加一些白名单 IP 的原因,有点抽象了。
下面是一些可能有用的链接:
我的最后解法:
1 | wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh w |