编辑
2023-09-23
freedom
00
请注意,本文编写于 923 天前,最后修改于 919 天前,其中某些信息可能已经过时。

目录

一. 使用脚本安装warp双栈模式(warp d),单ipv4也可以
二. dnsmasq配置
三. 域名解析配置
四. ipset配置
五. 添加route tables
六. iptables以及路由配置
七. 修改默认的 rp_filter 策略

一. 使用脚本安装warp双栈模式(warp d),单ipv4也可以

二. dnsmasq配置

  1. /etc/dnsmasq.conf文件配置
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
  1. /etc/dnsmasq.d/warp.conf
    如果没有就新建文件,将想要通过warp访问的域名添加进去,本例中是以openai.com结尾的域名
[root@instance-20230119-1031 ~]# cat /etc/dnsmasq.d/warp.conf server=1.1.1.1 server=8.8.8.8 server=/.openai.com/8.8.8.8#53 ipset=/.openai.com/warp ipset=/.openai.com/warp6 ##ipv6

重点网站配置:

server=1.1.1.1 server=8.8.8.8 # ----- WARP ----- # # > Youtube Premium server=/googlevideo.com/1.1.1.1 server=/youtube.com/1.1.1.1 server=/youtubei.googleapis.com/1.1.1.1 server=/fonts.googleapis.com/1.1.1.1 server=/yt3.ggpht.com/1.1.1.1 server=/gstatic.com/1.1.1.1 # > Custom ChatGPT ipset=/openai.com/warp ipset=/ai.com/warp # > IP api ipset=/ip.sb/warp ipset=/ip.gs/warp ipset=/ifconfig.co/warp ipset=/ip-api.com/warp # > Custom Website ipset=/www.cloudflare.com/warp ipset=/googlevideo.com/warp ipset=/youtube.com/warp ipset=/youtubei.googleapis.com/warp ipset=/fonts.googleapis.com/warp ipset=/yt3.ggpht.com/warp # > Netflix ipset=/fast.com/warp ipset=/netflix.com/warp ipset=/netflix.net/warp ipset=/nflxext.com/warp ipset=/nflximg.com/warp ipset=/nflximg.net/warp ipset=/nflxso.net/warp ipset=/nflxvideo.net/warp ipset=/239.255.255.250/warp # > TVBAnywhere+ ipset=/uapisfm.tvbanywhere.com.sg/warp # > Disney+ ipset=/bamgrid.com/warp ipset=/disney-plus.net/warp ipset=/disneyplus.com/warp ipset=/dssott.com/warp ipset=/disneynow.com/warp ipset=/disneystreaming.com/warp ipset=/cdn.registerdisney.go.com/warp # > TikTok ipset=/byteoversea.com/warp ipset=/ibytedtos.com/warp ipset=/ipstatp.com/warp ipset=/muscdn.com/warp ipset=/musical.ly/warp ipset=/tiktok.com/warp ipset=/tik-tokapi.com/warp ipset=/tiktokcdn.com/warp ipset=/tiktokv.com/warp
  1. 重启dnsmasq
service dnsmasq restart

三. 域名解析配置

默认的域名解析服务器设置为dnsmasq

[root@instance~]# cat /etc/resolv.conf nameserver 127.0.0.1 nameserver 100.100.100.100 search tail4dd15.ts.net

四. ipset配置

  1. 新建一个名字为warp的ipset集合
ipset create warp hash:ip ipset create warp6 hash:ip family inet6 #ipv6

五. 添加route tables

在/etc/iproute2/rt_tables添加一行,如下中的最后一行所示:

[root@instance-20230119-1031 ~]# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 55 warp

六. iptables以及路由配置

iptables -t mangle -N fwmark iptables -t mangle -A PREROUTING -j fwmark iptables -t mangle -A OUTPUT -j fwmark iptables -t mangle -A fwmark -m set --match-set warp dst -j MARK --set-mark 2 ip rule add fwmark 2 table warp ip route add default dev warp table warp iptables -t nat -A POSTROUTING -m mark --mark 0x2 -j MASQUERADE iptables -t mangle -A POSTROUTING -o warp -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

如果要删除iptables,请按照如下命令顺序执行:

iptables -t mangle -D PREROUTING -j fwmark iptables -t mangle -D OUTPUT -j fwmark iptables -t mangle -D fwmark -m set --match-set warp dst -j MARK --set-mark 2 ip rule del fwmark 2 table warp iptables -t mangle -D POSTROUTING -o warp -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -t nat -D POSTROUTING -m mark --mark 0x2 -j MASQUERADE iptables -t mangle -F fwmark iptables -t mangle -X fwmark

七. 修改默认的 rp_filter 策略

注意点,太坑!!!
Arch Linux 默认的 rp_filter 策略是严格路由匹配,即我收到 ICMP 包的网卡(物理网卡)并不是 最佳路径(默认路由表中VPN才是最佳路径)所以就丢掉了。所以把 rp_filter 改成宽松模式(路由可达即认为数据包合法)

sudo sysctl net.ipv4.conf.{all,enp0s3}.rp_filter=2 # 你的网卡不一定叫 enp0s3

或者编辑 /etc/sysctl.d/60-rp_filter.conf

net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.all.rp_filter = 2

本文作者:Free Birds

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!