WireGuard 的搭建使用与配置

参考连接:https://fuckcloudnative.io/posts/wireguard-docs-practice/

  1. 快速开始
    配置 WireGuard 的大致流程如下:

安装
CentOS7
Ubuntu
MacOS
Windows
其他

Ubuntu ≥ 18.04

$ apt install wireguard

Ubuntu ≤ 16.04

$ add-apt-repository ppa:wireguard/wireguard
$ apt-get update
$ apt-get install wireguard
在中继服务器上开启 IP 地址转发:

$ echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
$ echo “net.ipv4.conf.all.proxy_arp = 1” >> /etc/sysctl.conf
$ sysctl -p /etc/sysctl.conf
添加 iptables 规则,允许本机的 NAT 转换:

$ iptables -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
$ iptables -A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
$ iptables -A FORWARD -i wg0 -o wg0 -m conntrack –ctstate NEW -j ACCEPT
$ iptables -t nat -A POSTROUTING -s 192.0.2.0/24 -o eth0 -j MASQUERADE
需要把 eth0 改成你实际使用的网卡接口名称。

编写配置文件
配置文件可以放在任何路径下,但必须通过绝对路径引用。默认路径是 /etc/wireguard/wg0.conf。

配置文件内容解析放到下一章节再讲。

一键安装
一键安装请参考这个项目:WireGuard installer

  1. 配置详解
    WireGuard 使用 INI 语法作为其配置文件格式。配置文件可以放在任何路径下,但必须通过绝对路径引用。默认路径是 /etc/wireguard/wg0.conf。

配置文件的命名形式必须为 ${WireGuard 接口的名称}.conf。通常情况下 WireGuard 接口名称以 wg 为前缀,并从 0 开始编号,但你也可以使用其他名称,只要符合正则表达式 ^[a-zA-Z0-9_=+.-]{1,15}$ 就行。

你可以选择使用 wg 命令来手动配置隧道,但一般建议使用 wg-quick,它提供了更强大和用户友好的配置体验,可以通过配置文件来管理配置。

下面是一个配置文件示例:

[Interface]

Name = node1.example.tld

Address = 192.0.2.3/32
ListenPort = 51820
PrivateKey = localPrivateKeyAbcAbcAbc=
DNS = 1.1.1.1,8.8.8.8
Table = 12345
MTU = 1500
PreUp = /bin/example arg1 arg2 %i
PostUp = /bin/example arg1 arg2 %i
PreDown = /bin/example arg1 arg2 %i
PostDown = /bin/example arg1 arg2 %i

[Peer]

Name = node2-node.example.tld

AllowedIPs = 192.0.2.1/24
Endpoint = node1.example.tld:51820
PublicKey = remotePublicKeyAbcAbcAbc=
PersistentKeepalive = 25
[Interface]

本地节点是客户端,只路由自身的流量,只暴露一个 IP。

[Interface]

Name = phone.example-vpn.dev

Address = 192.0.2.5/32
PrivateKey =

Ubuntu 配置 SOCKS5

源链接:https://www.cnblogs.com/anonymous-test/p/13809348.html

1、安装 socks5
sudo apt-get install dante-server
安装完后可使用 danted -v 查看版本信息

2、dante配置文件常用参数

指定日志文件保存的绝对路径

logoutput:/var/log/socks5

绑定网卡跟端口

internal: 0.0.0.0 port=1080 # 进口 IP 或 网卡
external: eth0 port=1080 # 出口 IP 或 网卡

设置 socks 身份验证方式

socksmethod: username # 如为 none 则表示不进行身份验证(rfc931)
socksmethod: pam # pam 身份验证

设置客户端规则

clientmethod: none

用户相关

user.privileged: proxy # 当做一些需要特权的事情时,会使用 proxy 用户的权限(默认有该行)
user.unprivileged: nobody # 正常运行时,使用非特权用户 ID(默认有该行)

如果编译时支持 libwrap,使用的用户 ID( libwrap:服务程序安全增强工具,对有状态连接的特定服务进行安全检测并实现访问控制)

user.libwrap: nobody # 默认有该行

兼容性相关

compatibility: sameport # 当客户端连接后,socks 服务器将尝试使用与客户端使用的端口相同(需设置为 root 特权)
compatibility: reuseaddr # 允许端口复用(加了此行会报错,此处解释仅作参考)

启用绑定扩展

extension: bind

超时设置

timeout.negotiate: 30 # 设置连接超时时间
timeout.io: 0 # 设置空闲超时时间(0 为永不超时)

接受来自地址(DNS)的连接

srchost: nodnsunknown nodnsmismatch

设置访问规则

client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
clientmethod: rfc931 # 匹配密码文件中的所有 ID 用户
}
client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
log: connect disconnect error # 记录连接、断开、报错信息
}
socks pass {
from: 10.0.0.0/8 to: 0.0.0.0/0
protocol: tcp udp
}

设置拒绝规则

client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error # 记录连接、断开、报错信息
}
socks block {
from: 0.0.0.0/0 port 1-65535 to: 192.168.1.0/24
log: connect disconnect error # 记录连接、断开、报错信息
}
socks block {
from: 0.0.0.0/0 to: lo0
log: connect disconnect error # 记录连接、断开、报错信息
}
socks block { # 阻止任何其他地址连接到 example.com 域
from: 0.0.0.0/0 to: .example.com port = http
log: connect disconnect error # 记录连接、断开、报错信息
}

添加路由(服务器链接)

route {
from: 10.0.0.0/8 to: 0.0.0.0/0 port = http via: socks.example.net port = socks
}

3、配置dante.conf
在 danted.conf 文件末尾添加如下内容

指定日志文件保存的绝对路径

logoutput: /var/log/socks5.log

进口 IP 或 网卡

internal: eth0 port = 8888

进口网卡及端口

internal: eth0 port = 9999

出口网卡

external: eth0

设置代理方式(rfc931)

socksmethod: username none

设置客户端规则

clientmethod: none

设置用户权限

user.privileged: root

非特权用户

user.notprivileged: nobody

如果编译时支持 libwrap,使用的用户 ID( libwrap:服务程序安全增强工具,对有状态连接的特定服务进行安全检测并实现访问控制)

user.libwrap: nobody

设置访问规则

client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
# 记录连接、断开、报错信息
log: connect disconnect error
}

socks pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
protocol: tcp udp
}

停止服务:systemctl stop danted
启动服务:systemctl start danted
重启服务:systemctl restart danted
查看服务状态:systemctl status danted

如何创建可引导的 macOS 安装器

https://support.apple.com/zh-cn/HT201372
您可以将外置驱动器或备用宗卷用作安装 Mac 操作系统的启动磁盘。
以下高级步骤主要适用于系统管理员以及熟悉命令行的其他人员。升级 macOS 或重新安装 macOS 时不需要可引导安装器,但如果您要在多台电脑上安装 macOS,而不想每次都下载安装器,这时可引导安装器就会很有用。
创建可引导安装器需要满足的条件
USB 闪存驱动器或其他备用宗卷(格式化为 Mac OS 扩展格式),至少有 14 GB 可用储存空间
已下载 macOS Monterey、Big Sur、Catalina、Mojave、High Sierra 或 El Capitan 的安装器
下载 macOS
下载:macOS MontereymacOS Big SurmacOS CatalinamacOS MojavemacOS High Sierra
这些内容会作为名为“安装 macOS [版本名称]”的 App 下载到您的“应用程序”文件夹。如果安装器在下载后打开,请退出而不要继续安装。要获取正确的安装器,请从运行 macOS Sierra 10.12.5 或更高版本或者 El Capitan 10.11.6 的 Mac 中进行下载。如果您是企业管理员,请通过 Apple 下载,而不要通过本地托管的软件更新服务器进行下载。
下载:OS X El Capitan
这个内容会作为名为“InstallMacOSX.dmg”的磁盘映像下载。在与 El Capitan 兼容的 Mac 上,打开下载的磁盘映像,并运行其中名为“InstallMacOSX.pkg”的安装器。这时会在您的“应用程序”文件夹中安装一个名为“安装 OS X El Capitan”的 App。您将通过这个 App(而不是通过磁盘映像或 .pkg 安装器)创建可引导安装器。
在“终端”中使用“createinstallmedia”命令
连接要用于保存可引导安装器的 USB 闪存驱动器或其他宗卷。
打开“应用程序”文件夹内“实用工具”文件夹中的“终端”。
在“终端”中键入或粘贴以下命令之一。这些命令假设安装器位于您的“应用程序”文件夹中,并且“MyVolume”是您所使用的 USB 闪存驱动器或其他宗卷的名称。如果不是这个名称,请将这些命令中的 MyVolume 替换为您的宗卷名称。
Monterey:*
sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
Big Sur
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
Catalina

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
Mojave
sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
High Sierra

sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
El Capitan:
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume –applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app

  • 如果您的 Mac 运行的是 macOS Sierra 或更低版本,请使用 –applicationpath 参数和安装器路径,具体方法与在适用于 El Capitan 的命令中完成这个操作的方法类似。

键入命令后:
按下 Return 键以输入这个命令。
出现提示时,请键入您的管理员密码,然后再次按下 Return 键。在您键入密码时,“终端”不会显示任何字符。
出现提示时,请键入 Y 以确认您要抹掉宗卷,然后按下 Return 键。在抹掉宗卷的过程中,“终端”会显示进度。
宗卷被抹掉后,您可能会看到一条提醒,提示“终端”要访问可移除宗卷上的文件。点按“好”以允许继续拷贝。
当“终端”提示操作已完成时,宗卷的名称将与您下载的安装器名称相同,例如“Install macOS Monterey”。您现在可以退出“终端”并弹出宗卷。
“终端”窗口显示过程已完成
使用可引导安装器
确定您使用的是不是搭载 Apple 芯片的 Mac,然后按照相应的步骤操作:
Apple 芯片
将可引导安装器插入已连接到互联网且与您要安装的 macOS 版本兼容的 Mac。
将 Mac 开机并继续按住电源按钮,直到看到启动选项窗口,其中会显示可引导宗卷。
选择包含可引导安装器的宗卷,然后点按“继续”。
macOS 安装器打开后,请按照屏幕上的说明操作。
Intel 处理器
将可引导安装器插入已连接到互联网且与您要安装的 macOS 版本兼容的 Mac。
将 Mac 开机或重新启动后,立即按住 Option (Alt) ⌥ 键。
当您看到显示可引导宗卷的黑屏时,松开 Option 键。
选择包含可引导安装器的宗卷。然后点按向上箭头或按下 Return 键。
如果您无法从可引导安装器启动,请确保“启动安全性实用工具”中的“外部启动”设置已设为允许从外部介质启动。
根据提示选取您的语言。
从“实用工具”窗口中选择“安装 macOS”(或“安装 OS X”),然后点按“继续”,并按照屏幕上的说明进行操作。
进一步了解
可引导安装器不会从互联网下载 macOS,但却需要互联网连接才能获取特定于 Mac 机型的固件和其他信息。
要了解 createinstallmedia 命令以及可与它搭配使用的参数,请确保 macOS 安装器位于您的“应用程序”文件夹中,然后在“终端”中输入相应的路径:
/Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia
/Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia
/Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia
/Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia
/Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia
/Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia
发布日期: 2021 年 11 月 04 日

如何获取旧版 macOS

如何获取旧版 macOS
源链接(https://support.apple.com/zh-cn/HT211683)
如果您的 Mac 与最新版 macOS 不兼容,您或许能够升级到较早版本的 macOS,如 macOS Big Sur、Catalina、Mojave 或 High Sierra。

要获取 Mac 的最新功能并保持 Mac 的安全性、稳定性、兼容性和性能,请务必将您的软件保持在最新状态。 Apple 建议您始终使用与您的 Mac 兼容的最新版 macOS。
了解如何将 macOS 升级到最新版的 macOS Monterey。

检查兼容性
Mac 随附的 macOS 版本是它可使用的最低版本。例如,如果您的 Mac 随附 macOS Big Sur,则它不支持安装 macOS Catalina 或更低版本。
如果某个版本的 macOS 无法在您的 Mac 上使用,则 App Store 或相应安装器会告知您这一情况。例如,App Store 或安装器可能会提示您,这个版本的 macOS 与这台设备不兼容,或因版本太旧而无法在当前版本的 macOS 上打开。要在下载前确认兼容性,请查看最低硬件要求:
macOS Big Sur 11 的硬件要求
macOS Catalina 10.15 的硬件要求
macOS Mojave 10.14 的硬件要求
macOS High Sierra 10.13 的硬件要求
macOS Sierra 10.12 的硬件要求
OS X El Capitan 10.11 的硬件要求
OS X Yosemite 10.10 的硬件要求

进行备份
安装任何升级之前,最好先备份您的 Mac。“时间机器”可使您轻松完成备份,另外还有其他备份方法可供使用。

在 Mac 上使用 Safari 浏览器下载 macOS
Safari 浏览器会使用以下链接在 App Store 中查找旧版安装器。从 App Store 下载安装器后,安装器会自动打开。
macOS Big Sur 11 可升级 Catalina、Mojave、High Sierra、Sierra、El Capitan、Yosemite、Mavericks
macOS Catalina 10.15 可升级 Mojave、High Sierra、Sierra、El Capitan、Yosemite、Mavericks
macOS Mojave 10.14 可升级 High Sierra、Sierra、El Capitan、Yosemite、Mavericks、Mountain Lion
macOS High Sierra 10.13 可升级 Sierra、El Capitan、Yosemite、Mavericks、Mountain Lion
Safari 浏览器会以磁盘映像(名为“InstallOS.dmg”或“InstallMacOSX.dmg”)的形式下载以下较早版本的安装器。请打开已下载的磁盘映像,然后打开其中的 .pkg 安装器。它将安装一个名为“安装 [版本名称]”的 App。请从“应用程序”文件夹中打开这个 App,以开始安装操作系统。
macOS Sierra 10.12 可升级 El Capitan、Yosemite、Mavericks、Mountain Lion 或 Lion
OS X El Capitan 10.11 可升级 Yosemite、Mavericks、Mountain Lion、Lion 或 Snow Leopard
OS X Yosemite 10.10 可升级 Mavericks、Mountain Lion、Lion 或 Snow Leopard
发布日期: 2021 年 11 月 01 日