Clash旁路网关设置

前言

在不改变现有网络拓扑的情况下想实现全终端留学,增加一个旁路网关是一个好办法,下文将会介绍具体配置方法

下载Clash

下载最新版本的clash
然后用gzip命令解压

⚠注意,19.0以下的Clash不支持TPROXY方式的UDP转发

开启转发功能

临时开启

echo "1" > /proc/sys/net/ipv4/ip_forward

永久开启

echo "net.ipv4.ip_forward= 1" >> /etc/sysctl.conf

立即生效

sysctl -p

设置服务

创建服务

vi /lib/systemd/system/clash.service

写入内容

[Unit]
Description=clash service

[Service]
Type=simple
StandardError=journal
User=clash
Group=clash
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_NET_ADMIN
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_ADMIN
ExecStart=/home/clash/clash -d /home/clash
LimitNPROC=500
LimitNOFILE=1000000

[Install]
WantedBy=multi-user.target

⚠可选添加名为clash的用户,或者替换成其它非root用户

加入服务列表

systemctl daemon-reload
systemctl enable clash

运行服务以及查看日志

systemctl start clash
systemctl status clash

测试clash是否配置正确

curl -x socks5://127.0.0.1:7891 google.com

iptables设置

添加标记路由

ip rule add fwmark 0x1 table 100
ip route add local 0.0.0.0/0 dev lo table 100

UDP重路由

iptables -t mangle -N P_MARK  #新建表
iptables -t mangle -A P_MARK -d 127.0.0.1 -j RETURN
iptables -t mangle -A P_MARK -d 192.168.0.0/16 -j RETURN   #放行局域网数据
iptables -t mangle -A P_MARK -d 255.255.255.255 -j RETURN   #放行广播数据包
iptables -t mangle -A P_MARK -m owner --uid-owner clash -j RETURN   #放行clash发出的数据
iptables -t mangle -A P_MARK -p udp -j MARK --set-mark 0x1    #标记并重路由

TCP转发

iptables -t nat -N TCP_REDIR
iptables -t nat -A TCP_REDIR -d 127.0.0.1/8 -j RETURN
iptables -t nat -A TCP_REDIR -d 192.168.0.0/16 -j RETURN
iptables -t nat -A TCP_REDIR -p tcp -j REDIRECT --to-ports 7892   #转发TCP到指定端口

UDP转发

iptables -t mangle -N UDP_REDIR
iptables -t mangle -A UDP_REDIR -d 127.0.0.1 -j RETURN
iptables -t mangle -A UDP_REDIR -d 192.168.0.0/16 -j RETURN 
iptables -t mangle -A UDP_REDIR -d 255.255.255.255 -j RETURN
iptables -t mangle -A UDP_REDIR -p udp -j TPROXY --on-port 7892 --tproxy-mark 0x1/0x1   #按标记路由转发UDP到指定端口

应用规则

iptables -t mangle -A PREROUTING -j UDP_REDIR   #转发来自其它设备的UDP包
iptables -t mangle -A OUTPUT -j P_MARK          #重路由本机发出的UDP包
iptables -t nat -A PREROUTING -j TCP_REDIR      #转发来自其它设备的TCP包
iptables -t nat -A OUTPUT -m owner ! --uid-owner clash -j TCP_REDIR  #转发本机非clash的流量
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇