利用 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 服务器时间同步问题

本文最后更新于 2021 年 6 月 19 日


本文主要围绕 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

本文最后更新于 2024 年 2 月 25 日


本文以 Debian 12 为例,介绍如何搭建 VLESS + WebSocket + TLS 服务端,使用 Nginx 建立 Web,并利用 CloudFlare 隐藏源站 IP,最后说明对应的客户端配置文件的格式。本文同样完全适用于 Ubuntu 22.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 DNS EditZone Resources 特指区域为 example.com,完成后记下 Token
  8. 如果像本文一样准备了一个文件夹路径 /files,则需在 Access 版块中添加 Access Policy,只允许授权的用户访问该路径的资源
  9. 根据自己的需要在 CloudFlare 上进行其他设置(可选),例如配置 Always Use HTTPSHSTSAutomatic HTTPS RewritesAuto Minify 等等,主要影响浏览器访问网站的效果

Read More

Debian & Ubuntu 上使用 shadowsocks-libev 客户端

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


本文以 Debian 10 (Buster) 为例,介绍如何通过 snap 安装并使用 ss-libev 客户端,本教程同样适用于 Ubuntu 。服务端部署教程见这里

安装

安装 snapd

1
sudo apt update && sudo apt install snapd -y

安装 snap core:

1
sudo snap install core

安装 shadowsocks-libev

1
sudo snap install shadowsocks-libev

Read More

Debian & Ubuntu 上部署 shadowsocks-libev 服务端

本文最后更新于 2020 年 4 月 17 日


本文以 Debian 10 (Buster) 系统为例,介绍如何搭建 ss-libev 服务端,本教程同样适用于 Ubuntu。客户端使用教程见这里

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


准备

  • 可用的公网 IP 服务器(例如在 BandwagonHostVultr 等处购买的 VPS)
  • 基础 Linux 操作知识,并了解 vim 编辑器的基本使用方法

安装

安装 snapd

1
sudo apt update && sudo apt install snapd -y

安装 snap core:

1
sudo snap install core

安装 shadowsocks-libev

1
sudo snap install shadowsocks-libev

Read More

Mastodon