Linux 伺服器(網路相關)

📢 本文由 gemini-2.5-flash 翻譯

這篇文章由 Hiyoung 編寫

背景知識:

Linux 時鐘概述 Linux 系統有兩個時鐘:一個是硬體時鐘,即 BIOS 時間;另一個是系統時鐘,是 Linux 系統 Kernel(核心)時間。 在 Linux 系統上程式執行時讀取的時間都是系統 Kernel(核心)時間。 每次 Linux 開機時,系統 Kernel(核心)會先去讀取硬體時鐘的設定(但是此時的硬體時間不一定準確),然後系統時鐘就會獨立於硬體繼續運作。 綜上所述,所以想要永久修改 Linux 時間並讓時間準確,就需要永久修改硬體時間,不然每次重新開機 Linux 時,系統時間又變回之前的硬體時間。 Linux 時鐘相關指令 系統 Kernel(核心)時鐘的相關指令是 timedatectl 或者 date; 硬體 BIOS 時鐘相關指令是 hwclock 或者 clock

1. 在 Linux CLI 介面輸入 date 查看目前 Linux 系統時間

1
date

輸入 hwclock --show 查看硬體時間

1
hwclock --show

2. 校準 Linux 系統時間(使用 NTP 服務時需要系統連網)

  • CentOS 下安裝配置 NTP 服務的步驟如下:
1
2
# 安裝 NTP 服務的套件
sudo yum install ntp
1
2
# 將 NTP 服務設定為預設啟動
sudo chkconfig ntp on
1
2
# 修改啟動參數,增加 -g -x 參數,允許 NTP 服務在系統時間誤差較大時也能正常運作
sudo vi /etc/sysconfig/ntpd
1
2
# 啟動 NTP 服務
sudo service ntpd restart
  • Ubuntu/Debian 下安裝配置 NTP 服務的步驟如下:
1
2
# 安裝 NTP 服務的套件
sudo apt-get install ntp
1
2
# 修改啟動參數,增加 -g -x 參數,允許 NTP 服務在系統時間誤差較大時也能正常運作
sudo vi /etc/default/ntp
1
2
# 啟動 NTP 服務
sudo service ntp restart
  • 將硬體時鐘調整為與系統時鐘一致
1
hwclock --systohc --localtime (這個好像更有效)

或者

1
timedatectl set-local-rtc 1
  • 最後將日期寫入 CMOS 永久生效
1
clock -w

或者

1
hwclock -w

3. 開啟 Google BBR 加速

本文的系統要求為 Debian 9 或更高版本的 Debian Linux,其他作業系統所知不詳,不知是否適合本文的方法。

注意,本文的配置參數不只啟用 Google BBR,還包括一系列網路參數的優化,直接複製執行使用即可。

Google BBR 一鍵加速 VPS 伺服器很簡單,SSH 登入 VPS 後,分別執行以下 2 個指令即可(滑鼠選取反白後,點滑鼠右鍵複製貼上到 root 帳號的 # 後面,然後按 Enter 鍵)。

指令 1

1
wget https://raw.githubusercontent.com/bannedbook/fanqiang/master/v2ss/server-cfg/sysctl.conf -O -> /etc/sysctl.con

如果提示 wget: command not found 的錯誤,這是因為你的系統沒有安裝 wget,所以需要先安裝 wget: <strong>apt-get install -y wget</strong>

指令 2

1
sysctl -p

執行成功後大致會輸出:(視個人情況而定) fs.file-max = 51200 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_rmem = 32768 436600 873200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_max_tw_buckets = 9000 net.ipv4.tcp_max_syn_backlog = 65536 net.ipv4.tcp_mem = 94500000 91500000 92700000 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_wmem = 8192 436600 873200 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.ipv4.tcp_congestion_control = bbr

This post is licensed under CC BY-NC-SA 4.0 by the author.