<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aaron Ji's blog (Posts about clash)</title><link>https://blog.jiya.net/</link><description></description><atom:link href="https://blog.jiya.net/categories/clash.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:me@jiya.net"&gt;Aaron Ji&lt;/a&gt; </copyright><lastBuildDate>Wed, 19 Feb 2025 06:17:18 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Install Clash as Gateway on AlmaLinux</title><link>https://blog.jiya.net/posts/2022/05/install-clash-as-gateway-on-almalinux.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;p&gt;
这两天本来想升级下 OpenWRT 系统，没想到升级到新版本后有一些问题（后来发现应该是 AdGuardHome 的问题），而且在调教 Clash 配置的时候发现 OpenWRT 非常不友好的不能按照我所想的修改配置文件，即界面修改不能生效，于是决定使用类 RHEL 系统（本文使用 AlmaLinux 配置一下）。
&lt;/p&gt;
&lt;div id="outline-container-org0c9dcc4" class="outline-2"&gt;
&lt;h2 id="org0c9dcc4"&gt;&lt;span class="section-number-2"&gt;1.&lt;/span&gt; Clash 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-1"&gt;
&lt;/div&gt;
&lt;div id="outline-container-orgf4429c1" class="outline-3"&gt;
&lt;h3 id="orgf4429c1"&gt;&lt;span class="section-number-3"&gt;1.1.&lt;/span&gt; 首先从 Clash 首页下载执行文件并放至执行文件目录&lt;/h3&gt;
&lt;/div&gt;
&lt;div id="outline-container-org336a78c" class="outline-3"&gt;
&lt;h3 id="org336a78c"&gt;&lt;span class="section-number-3"&gt;1.2.&lt;/span&gt; 配置启动 &lt;code&gt;service&lt;/code&gt; 文件&lt;/h3&gt;
&lt;div class="outline-text-3" id="text-1-2"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;vi /etc/systemd/system/clash.service
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
文件内容如下所示：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target

[Service]
Type=simple
Restart=always
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/local/bin/clash -d /etc/clash

StandardOutput=file:/var/log/clash/clash.out
StandardError=file:/var/log/clash/clash.err

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-org6e8d8f3" class="outline-3"&gt;
&lt;h3 id="org6e8d8f3"&gt;&lt;span class="section-number-3"&gt;1.3.&lt;/span&gt; 将 Clash 的配置文件放至 &lt;code&gt;/etc/clash&lt;/code&gt; 目录下&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org9c7a651" class="outline-3"&gt;
&lt;h3 id="org9c7a651"&gt;&lt;span class="section-number-3"&gt;1.4.&lt;/span&gt; 配置防火墙&lt;/h3&gt;
&lt;div class="outline-text-3" id="text-1-4"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo firewall-cmd --permanent --direct --add-chain ipv4 nat clash
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 0.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 10.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 127.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 169.254.0.0/16 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 172.16.0.0/12 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 192.168.0.0/16 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 224.0.0.0/4 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 240.0.0.0/4 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 2 -p tcp -j REDIRECT --to-ports "7892"
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0 -p tcp -j clash

# 使用 Clash DNS 切非 53 端口时需要，本文使用 AdGuard Home 作为 DNS 服务，故不需要进行如下配置
sudo firewall-cmd --permanent --direct --add-chain ipv4 nat CLASH_DNS
sudo firewall-cmd --permanent --direct --remove-rules ipv4 nat CLASH_DNS
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat CLASH_DNS 1 -p udp -j REDIRECT --to-port 1053
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p udp --dport 53 -j CLASH_DNS
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat CLASH_DNS 1 -p tcp -j REDIRECT --to-port 1053
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp --dport 53 -j CLASH_DNS

 sudo firewall-cmd --reload
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
处理后的 firewall 配置文件（/etc/firewalld/direct.xml）如下所示：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;direct&amp;gt;
  &amp;lt;chain ipv="ipv4" table="nat" chain="clash"/&amp;gt;
  &amp;lt;chain ipv="ipv4" table="nat" chain="CLASH_DNS"/&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 0.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 10.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 127.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 169.254.0.0/16 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 172.16.0.0/12 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 192.168.0.0/16 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 224.0.0.0/4 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 240.0.0.0/4 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="2"&amp;gt;-p tcp -j REDIRECT --to-ports 7892&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="PREROUTING" priority="0"&amp;gt;-p tcp -j clash&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="CLASH_DNS" priority="1"&amp;gt;-p udp -j REDIRECT --to-port 1053&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="CLASH_DNS" priority="1"&amp;gt;-p tcp -j REDIRECT --to-port 1053&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="OUTPUT" priority="0"&amp;gt;-p udp --dport 53 -j CLASH_DNS&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="OUTPUT" priority="0"&amp;gt;-p tcp --dport 53 -j CLASH_DNS&amp;lt;/rule&amp;gt;
&amp;lt;/direct&amp;gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-orgbb7c2b3" class="outline-2"&gt;
&lt;h2 id="orgbb7c2b3"&gt;&lt;span class="section-number-2"&gt;2.&lt;/span&gt; AdGuard Home 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-2"&gt;
&lt;p&gt;
附 AdGuard Home &lt;code&gt;service&lt;/code&gt; 文件 &lt;code&gt;/etc/systemd/system/AdGuardHome.service&lt;/code&gt; ：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=AdGuard Home: Network-level blocker
ConditionFileIsExecutable=/opt/AdGuardHome/AdGuardHome

After=syslog.target network-online.target

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStartPre=/bin/mkdir -p /var/log/
# ExecStart=/opt/AdGuardHome/AdGuardHome "-s" "run"
ExecStart=/opt/AdGuardHome/AdGuardHome  -c /etc/AdGuardHome/AdGuardHome.yaml

WorkingDirectory=/opt/AdGuardHome


StandardOutput=file:/var/log/AdGuardHome/AdGuardHome.out
StandardError=file:/var/log/AdGuardHome/AdGuardHome.err

Restart=always

RestartSec=10
EnvironmentFile=-/etc/sysconfig/AdGuardHome

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
防火墙配置：
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-org69e4013" class="outline-2"&gt;
&lt;h2 id="org69e4013"&gt;&lt;span class="section-number-2"&gt;3.&lt;/span&gt; v2ray 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-3"&gt;
&lt;p&gt;
附 v2ray &lt;code&gt;service&lt;/code&gt; 配置文件（/etc/systemd/system/v2ray.service）内容：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=V2Ray Service
Documentation=https://www.v2fly.org/
After=network.target nss-lookup.target
StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/opt/v2ray/v2ray -config /etc/v2ray/config.json
Restart=on-failure
RestartSec=5s
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
本文中的 DNS 结构如下所示：
&lt;/p&gt;

&lt;p&gt;
客户端 -&amp;gt; AdGuard Home -&amp;gt; Clash -&amp;gt; Other DNS
&lt;/p&gt;

&lt;p&gt;
即 AdGuard Home 中的 DNS Upstream 只配置了 Clash 的地址。
&lt;/p&gt;

&lt;p&gt;
部分内容参考自网络。
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>clash</category><guid>https://blog.jiya.net/posts/2022/05/install-clash-as-gateway-on-almalinux.html</guid><pubDate>Mon, 02 May 2022 14:20:00 GMT</pubDate></item></channel></rss>