移动端 | 加入收藏 | 设为首页 | 我要投稿 | 赞助本站 | RSS
 

freefq.comfree——免费、自由fq——翻墙

困在墙内,请发邮件到freefqcom#gmail.com获得最新免费翻墙方法!
您当前的位置:首页 > 网络翻墙技巧

用Firewalld + systemd.slice + redir實現TCP + UDP透明代理

时间:2021-06-15  来源:matters  作者: 条评论

现在网上已经有不少用 iptables 或 nftables 实现透明代理(Tproxy)的例子了。绝大多数关于透明代理的教程都是通过 iptables 实现的,也有少量使 用新一代的 nftables 内核防火墙前端来实现。然而,消费级电脑上通常会装有更简化的防火墙程序,例如 Fedora/CentOS/SUSE 自带的 Firewalld,或 Ubuntu 的 UFW。在用这些简化前端的同时,直接操作 nftables 和 iptables 的话可能会造成冲突,更好的解法是全部工作都由 firewalld/ufw 来做。Goz免费翻墙网

本文就以 firewalld 为例,用它的 direct rules 来实现透明代理(没错,firewalld 并不提供关于透明代理的抽象,所以并不比 iptables 有优势)。Goz免费翻墙网

想要实现的效果

  • TCP 和 UDP 流量自动转给 Clash(或 shadowsocks 等)
  • Clash 本身不会把流量转发给自己
  • 可以让某些 程序 不转发给 clash,直接联网

Get started

先来设置变量,指向 clash 的 redir-portGoz免费翻墙网

export proxy_port=7892 # 按你 clash 的设置修改

接着设置 firewalld 和 ip route。 Firewalld 的 direct rules 语法几乎等同于 iptables(因为实际上就是调用 iptables 来执行 direct rules)。所以这里直接照抄 systemd.slice + iptables + redir:如何在 Arch Linux 上配置透明代理 的规则,稍有修改:Goz免费翻墙网

#tcp
sudo firewall-cmd --direct --add-chain ipv4 nat clash
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -m cgroup --path "clash.slice" -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 0.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 10.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 127.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 169.254.0.0/16 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 172.16.0.0/12 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 192.168.0.0/16 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 224.0.0.0/4 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -d 240.0.0.0/4 -j RETURN

sudo firewall-cmd --direct --add-rule ipv4 nat clash 2 -p tcp -j REDIRECT --to-port "$proxy_port"

sudo firewall-cmd --direct --add-rule ipv4 nat OUTPUT 1 -p tcp -j clash

#udp
sudo ip rule add fwmark 1 table 100
sudo ip route add local default dev lo table 100
sudo firewall-cmd --direct --add-chain ipv4 mangle clash
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -m cgroup --path "clash.slice" -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 0.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 10.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 127.0.0.0/8 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 169.254.0.0/16 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 172.16.0.0/12 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 192.168.0.0/16 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 224.0.0.0/4 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 1 -d 240.0.0.0/4 -j RETURN
sudo firewall-cmd --direct --add-rule ipv4 mangle clash 2 -p udp -j TPROXY --on-port "$proxy_port" --tproxy-mark 1
sudo firewall-cmd --direct --add-rule ipv4 mangle OUTPUT 0 -p udp -j clash # 这里可能有错(`failed: iptables-restore: line 3 failed`),欢迎指正
sudo firewall-cmd --direct --add-chain ipv4 nat CLASH_DNS
sudo firewall-cmd --direct --remove-rules ipv4 nat CLASH_DNS 
sudo firewall-cmd --direct --add-rule ipv4 nat CLASH_DNS 1 -p udp -j REDIRECT --to-port 1053
sudo firewall-cmd --direct --add-rule ipv4 nat OUTPUT 0 -p udp --dport 53 -j CLASH_DNS

其中,sudo firewall-cmd --direct --add-rule ipv4 nat clash 1 -m cgroup --path "clash.slice" -j RETURN 将放到 clash.slice 下的 service 给绕过 clash 了。Goz免费翻墙网

Clash 要以 systemd unit 的形式 来运行。为了让 clash 不把自己的流量循环转回给自己,给它的 unit 分配给 clash.sliceGoz免费翻墙网

[Service]
Slice=clash.slice

其它不想走 clash 的程序也可以以类似方式分配给 clash.slice。Goz免费翻墙网

 

IPFS 官方中文 Wikipedia 使用指南

 

https://www.v2ex.com/t/764965#reply11Goz免费翻墙网

 Goz免费翻墙网

什么是 IPFS ?

星际文件系统InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址对等超媒体分发协议。在 IPFS 网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自 2014 年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。Goz免费翻墙网

用最简单的话来说 IPFS 是个 P2P 网络,和我们日常可能会使用的 BT 下载的原理类似,但是 IPFS 相比于 BT 来说做了非常多的改进,使得 IPFS 的性能和扩展性都有很大的提升。Goz免费翻墙网

在 IPFS 网络中每一个文件都有一个独特的 CID,当你把一个文件放入 IPFS 网络中,其他的用户就可以通过 CID 来获取到这个文件而不必考虑这个文件存放在何处。此外任何用户可以选择 pin 住一个文件的 CID,从而帮助 IPFS 网络长期的保存某个文件。Goz免费翻墙网

什么是 Distributed Wikipedia Mirror ?

Distributed Wikipedia Mirror 是 IPFS 官方团队维护的一个项目。这个项目旨在将 Wikipedia 带入 IPFS 网络,以及最终构建出一个纯分布式的 Wikipedia 。目前该项目已经提供了:英语、土耳其语、缅甸语和中文的 Wikipedia 镜像。Goz免费翻墙网

如何使用?

本文将介绍如何使用中文版的 Wikipedia IPFS 镜像。Goz免费翻墙网

镜像的地址为:Goz免费翻墙网

请注意本项目的 CID 地址会随着分发的 Wikipedia 镜像版本更新而改变,你可以通过访问此地址或者使用 ipfs name resolve zh.wikipedia-on-ipfs.org 获取到最新的 CIDGoz免费翻墙网

我接下来会介绍 3 种不同的方式来访问本镜像。Goz免费翻墙网


公共网关

公共网关是目前访问 IPFS 网络上内容最简单的方式,但这也是最容易被封锁的方式。我将以官方的网关为例来演示如何使用公共网关来访问 IPFS 网络上的内容。Goz免费翻墙网

官方公共网关地址: https://ipfs.ioGoz免费翻墙网

使用 CID 访问镜像

如果你决定使用 CID 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

https://ipfs.io/ipfs/<CID>

在我们的例子里就是:Goz免费翻墙网

https://ipfs.io/ipfs/bafybeiazgazbrj6qprr4y5hx277u4g2r5nzgo3jnxkhqx56doxdqrzms6y

使用 DNSLink 地址访问

如果你决定使用 DNSLink 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

https://ipfs.io/ipns/<DNSLink>

在我们的例子里就是:Goz免费翻墙网

https://ipfs.io/ipns/zh.wikipedia-on-ipfs.org

Brave 浏览器

如果你在使用最新版的 Brave 浏览器,你可以直接使用 Brave 内置的 IPFS 节点来访问 IPFS 网络上的内容。你在第一次使用 Brave 浏览器访问 IPFS 内容时,Brave 浏览器可能会询问你是否要启用本地 IPFS 节点,建议选择启用,如果没有启用,Brave 会自动使用公共网关来访问 IPFS 网络上的内容。此外你可以通过 Brave 设置页面中 IPFS 相关的选项和内置的 IPFS-Companion 插件中的选项来调整 IPFS 节点类型。Goz免费翻墙网

使用 CID 访问镜像

如果你决定使用 CID 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

ipfs://<CID>

在我们的例子里就是:Goz免费翻墙网

ipfs://bafybeiazgazbrj6qprr4y5hx277u4g2r5nzgo3jnxkhqx56doxdqrzms6y

使用 DNSLink 地址访问

如果你决定使用 DNSLink 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

ipns://<DNSLink>

在我们的例子里就是:Goz免费翻墙网

ipns://zh.wikipedia-on-ipfs.org

IPFS Desktop

IPFS Desktop 对于是目前普通用户使用本地 IPFS 最容易的方法,你可以在这里下载最新版的 IPFS Desktop 。在启动成功之后,IPFS-Dekstop 会默认在你本地地址的 8080 端口启动一个网关服务器,之后我们就可以使用这个本地的网关服务来访问 IPFS 网络上的内容了。Goz免费翻墙网

当然你可以通过修改 IPFS-Desktop 中的 Gateway 项,来修改默认的端口地址。Goz免费翻墙网

使用 CID 访问镜像

如果你决定使用 CID 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

http://127.0.0.1:<port>/ipfs/<CID>

在我们的例子里就是:Goz免费翻墙网

http://127.0.0.1:8080/ipfs/bafybeiazgazbrj6qprr4y5hx277u4g2r5nzgo3jnxkhqx56doxdqrzms6y

使用 DNSLink 地址访问

如果你决定使用 DNSLink 地址来访问镜像的话,你需要在浏览器地址栏按照如下格式输入:Goz免费翻墙网

http://127.0.0.1:<port>/ipns/<DNSLink>

在我们的例子里就是:Goz免费翻墙网

http://127.0.0.1:8080/ipns/zh.wikipedia-on-ipfs.org
来自matters
来顶一下
返回首页
返回首页
欢迎评论:免登录,输入验证码即可匿名评论 共有条评论
用户名: 密码:
验证码: 匿名发表

推荐资讯

LittleVPN免注册无限流量永久免费VPN
LittleVPN免注册无限流
高速免费VPN Бесплатно ВПН прокси
高速免费VPN Бесп
SpeedUp VPN - 兼容SSR的免费高速VPN(自带节点)
SpeedUp VPN - 兼容SS
VPN Gratis Ilimitado - Brasil, Chile, Argentina
VPN Gratis Ilimitado
相关文章
栏目更新
栏目热门
墙外新闻
读者文摘

你可以访问真正的互联网了。You can access the real Internet.

管理员精中特别提醒:本网站域名、主机和管理员都在美国,且本网站内容仅为非中国大陆网友服务。禁止中国大陆网友浏览本站!若中国大陆网友因错误操作打开本站网页,请立即关闭!中国大陆网友浏览本网站存在法律风险,恳请立即关闭本站所有页面!对于您因浏览本站所遭遇的法律问题、安全问题和其他所有问题,本站均无法负责也概不负责。

特别警告:本站推荐各种免费科学上网软件、app和方法,不建议各位网友购买收费账号或服务。若您因付费购买而遭遇骗局,没有得到想要的服务,请把苦水往自己肚子里咽,本站无法承担也概不承担任何责任!

本站严正声明:各位翻墙的网友切勿将本站介绍的翻墙方法运用于违反当地法律法规的活动,本站对网友的遵纪守法行为表示支持,对网友的违法犯罪行为表示反对!

网站管理员定居美国,因此本站所推荐的翻墙软件及翻墙方法都未经测试,发布仅供网友测试和参考,但你懂的——翻墙软件或方法随时有可能失效,因此本站信息具有极强时效性,想要更多有效免费翻墙方法敬请阅读本站最新信息,建议收藏本站!本站为纯粹技术网站,支持科学与民主,支持宗教信仰自由,反对恐怖主义、邪教、伪科学与专制,不支持或反对任何极端主义的政治观点或宗教信仰。有注明出处的信息均为转载文章,转载信息仅供参考,并不表明本站支持其观点或行为。未注明出处的信息为本站原创,转载时也请注明来自本站。

鉴于各种免费翻墙软件甚至是收费翻墙软件可能存在的安全风险及个人隐私泄漏可能,本站提醒各位网友做好各方面的安全防护措施!本站无法对推荐的翻墙软件、应用或服务等进行全面而严格的安全测试,因此无法对其安全性做保证,无法对您因为安全问题或隐私泄漏等问题造成的任何损失承担任何责任!

S. Grand Ave.,Suite 3910,Los Angeles,CA 90071

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。