解决 Debian 或 Ubuntu 开机时间被 networking 大量占用的问题

问题

首先查看哪些服务占用了开机时间:

1
systemd-analyze blame

本文示例中发现 networking.service 的时间长达 5 分钟。查看该服务状态可发现如下错误:

1
2
3
4
systemd[1]: networking.service: Start operation timed out. Terminating.
systemd[1]: networking.service: Main process exited, code=killed, status=15/TERM
systemd[1]: networking.service: Failed with result 'timeout'.
systemd[1]: Failed to start Raise network interfaces.

Read More

Debian & Ubuntu 搭建部署 trojan-go + Nginx + Websocket 并使用 Cloudflare

本文最后更新于 2020 年 8 月 2 日


本文以 Debian 10 为例,介绍如何搭建 trojan-go + Websocket 服务端,使用 Nginx 建立 Web,并利用 Cloudflare 隐藏源站 IP,最后说明对应的客户端配置文件的格式。本文同样完全适用于 Ubuntu 20.04 系统。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 trojan-go 的部署,并默认已按初始化配置文章对服务器进行了配置。


准备工作

服务器与域名

  1. 可用的公网 IP 服务器(例如在 BandwagonHostVultr 等处购买的 VPS)
  2. 注册一个域名,本文以 example.com 为例

内容准备

  1. 起一个随机的路径名,本文使用 /random
  2. 准备自定义的 Web 页面,用于浏览器正常访问 example.com 显示的网页
  3. 准备自定义的 404 页面(可选)

Cloudflare 设置

  1. 将域名的 Namesever 指向 Cloudflare 所提供的地址,等待生效
  2. NS 记录更新后,将 Cloudflare 中域名的 A 记录指向服务器 IP,确保云朵为橙色(Proxied)
  3. SSL/TLS 版块中的 Overview 里,将加密模式调整为 Full (strict)
  4. SSL/TLS 版块中的 Edge Certificates 里,将 Minimum TLS Version 调整为 TLS 1.3,并在下方确保开启对 TLS 1.3 的支持
  5. Firewall 版块中的 Firewall Rules 里,添加一个规则,允许 /random 路径的访问(Allow URI path)
  6. 在 Cloudflare 上获取域名的 Zone ID,记录之
  7. 在 Cloudflare 的 My Profile 中生成一个 API Token,权限为 Zone Zone ReadZone DNS EditZone Resources 特指区域为 example.com,完成后记下 Token
  8. 根据自己的需要在 Cloudflare 上进行其他设置(可选),例如配置 Always Use HTTPSHSTSAutomatic HTTPS RewritesAuto Minify 等等,主要影响浏览器访问网站的效果

Read More

利用 NAT VPS 进行流量中转

本文最后更新于 2020 年 6 月 3 日


本文以 CentOS 8 和 Debian 10 & Ubuntu 20.04 为例,介绍如何在 NAT VPS 上设置流量中转。

开始前,请先根据实际使用的操作系统,参照以下文章对服务器进行各种必要的配置:

本文以 sammy 用户为例,进行中转机的设置,并默认已按初始化配置文章对服务器进行了配置。

本文将介绍四种方法:firewalldUFWiptables,和 socat(推荐)来进行流量中转,根据需要选取其中一种方法操作即可。亦可根据需要,将目标机设置为只允许中转机访问。

其中,firewalldUFWiptables 均可对 TCP 和 UDP 进行转发,而 socat 还可以对包含域名的地址进行转发。


准备

  • 购买合适的 NAT VPS,此处提供一些服务商
  • 了解 NAT VPS 的基本使用方法,例如搞清楚 NAT VPS 一般需要在服务商处查看端口映射的设置
  • 基础 Linux 操作知识,并了解 vim 编辑器的基本使用方法

使用 firewalld 进行中转

此方法在 CentOS 下较为简便(CentOS 8 默认使用 firewalld),因此也推荐使用此方法。

检查 firewalld 运行状态,输出应为 running

1
firewall-cmd --state

接下来设置端口转发:

1
2
3
4
5
6
sudo firewall-cmd --zone=public --permanent --add-port 本机端口号/tcp
sudo firewall-cmd --zone=public --permanent --add-port 本机端口号/udp
sudo firewall-cmd --zone=public --permanent --add-forward-port=port=本机端口号:proto=tcp:toport=目标端口号:toaddr=目标地址
sudo firewall-cmd --zone=public --permanent --add-forward-port=port=本机端口号:proto=udp:toport=目标端口号:toaddr=目标地址
sudo firewall-cmd --zone=public --permanent --add-masquerade
sudo firewall-cmd --reload

其中 目标地址 为目标服务器的 IP 地址。

至此,利用 firewalld 设置中转的方法介绍完毕。另可根据使用场景,对目标机的防火墙进行配置,令其只接受来自此 NAT VPS 的流量。

Read More

Linux 服务器时间同步问题

本文主要围绕 Linux 服务器时间同步失败的问题展开讨论,以 Ubuntu 和 CentOS 系统为例,提供几种测试和解决方法。


常见错误

1
Timed out waiting for reply from ... (...)
1
chronyd: No suitable source for synchronisation

NTP 被屏蔽

如果服务器主机出现了时间同步失败的问题,首先应考虑是否是主机商屏蔽了 NTP 数据包,导致系统无法同步时间。一般情况下,可发送工单进行询问以做确认。

客服可能会提供一个可用的 NTP 服务器地址,接下来更改同步时间的软件设置,改为使用该地址同步即可。

Read More

Debian & Ubuntu 搭建部署 V2Ray + Websocket + TLS + Nginx 并使用 Cloudflare

本文最后更新于 2020 年 9 月 18 日


本文以 Debian 10 为例,介绍如何搭建 V2Ray + Websocket + TLS 服务端,使用 Nginx 建立 Web,并利用 Cloudflare 隐藏源站 IP,最后说明对应的客户端配置文件的格式。本文同样完全适用于 Ubuntu 20.04 系统。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 V2Ray 的部署,并默认已按初始化配置文章对服务器进行了配置。


准备工作

服务器与域名

  1. 可用的公网 IP 服务器(例如在 BandwagonHostVultr 等处购买的 VPS)
  2. 注册一个域名,本文以 example.com 为例

内容准备

  1. 起一个随机的路径名,本文使用 /random
  2. Online UUID Generator Tool 上生成一个 UUID,并记录之
  3. 准备自定义的 Web 页面,用于浏览器正常访问 example.com 显示的网页
  4. 准备自定义的 404 页面(可选)
  5. 起一个文件夹路径(可选),本文使用 /files,用于存放一些客户端软件包以供有限的授权人员下载

Cloudflare 设置

  1. 将域名的 Namesever 指向 Cloudflare 所提供的地址,等待生效
  2. NS 记录更新后,将 Cloudflare 中域名的 A 记录指向服务器 IP,确保云朵为橙色(Proxied)
  3. SSL/TLS 版块中的 Overview 里,将加密模式调整为 Full (strict)
  4. SSL/TLS 版块中的 Edge Certificates 里,将 Minimum TLS Version 调整为 TLS 1.3,并在下方确保开启对 TLS 1.3 的支持
  5. Firewall 版块中的 Firewall Rules 里,添加一个规则,允许 /random 路径的访问(Allow URI path)
  6. 在 Cloudflare 上获取域名的 Zone ID,记录之
  7. 在 Cloudflare 的 My Profile 中生成一个 API Token,权限为 Zone Zone ReadZone DNS EditZone Resources 特指区域为 example.com,完成后记下 Token
  8. 如果像本文一样准备了一个文件夹路径 /files,则需在 Access 版块中添加 Access Policy,只允许授权的用户访问该路径的资源
  9. 根据自己的需要在 Cloudflare 上进行其他设置(可选),例如配置 Always Use HTTPSHSTSAutomatic HTTPS RewritesAuto Minify 等等,主要影响浏览器访问网站的效果

Read More