惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
AI
AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 热门话题
G
GRAHAM CLULEY
Cisco Talos Blog
Cisco Talos Blog
T
Tenable Blog
L
Lohrmann on Cybersecurity
Know Your Adversary
Know Your Adversary
A
Arctic Wolf
T
Threatpost
AWS News Blog
AWS News Blog
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cisco Blogs
F
Full Disclosure
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
I
InfoQ
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
C
CERT Recently Published Vulnerability Notes
Last Week in AI
Last Week in AI
P
Privacy International News Feed
Scott Helme
Scott Helme
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
D
Docker
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Y
Y Combinator Blog
T
Tor Project blog
V
Visual Studio Blog
Spread Privacy
Spread Privacy
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Google Online Security Blog
Google Online Security Blog
C
Check Point Blog
爱范儿
爱范儿
N
News and Events Feed by Topic
博客园 - 【当耐特】
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main

WAYJAM

告别 NPM Token:迁移到 Trusted Publishing 全记录 Sing-box:IPv6 优先出站与 Netflix 强制 IPv6 分流 [All In One] HomeLab 虚拟化 iKuai + Mihomo - IPv6 支持 [All In One] HomeLab 虚拟化 iKuai + Mihomo LiteLLM 多模型 API 中转 MacOS Bootstrp with Nix Fluency Support Full Rss [All In One] PVE 中 OpenWrt LXC 重启问题 Tabby 终端配置以及配置全平台同步 Cloudflare Tunnel + Nginx Proxy Manager:服务穿透 PVE 7 升级 8 笔记 PVE 安装 Android x86 & 安装 Magisk Fly.io 部署 Artalk 评论系统 [All In One] HomeLab 2023 搭建总结 [All In One] 轻量的文件 & 媒体服务器配置 [All In One] R71s 主机散热改造 [All In One] PVE LXC 安装 OpenWrt 软路由以及网络规划 [All In One] 安装 Proxmox VE 7.4 从零开始配置Rime - 2023 Self Hosted Bitwarden + Cloudfare HTTPS Debian NFS Server 以及 MacOS Client AdguardHome 和 Clash 透明代理配合使用 使用 Kind 部署 Prow 手记 BackBlaze B2 + Cloudfare Worker 图床 PicGo Amazon S3 插件 自动给模板生成 Inline-Svg Hugo Theme WeUI 发布! Hugo Theme Fluency 发布! 有限状态机与分布式熔断器 「家庭娱乐」N1刷 EmuELEC 做游戏盒子 「家庭娱乐」N1刷 Armbian 做家庭服务器 分布式限流器之令牌桶实现 Kustomize 管理 Kubernetes 集群 Mixedpaper 主题发布到 Hugo 官方仓库 About 优化 Docker 构建时间 解决 etcd 与 grpc 不兼容问题 Kubernetes 部署 ElasticSearch7 集群 从零开始配置Rime - 2019 转移域名,更换评论系统,更换图床 搭建 NPM Proxy 之预编译包 搭建 NPM Proxy 美区Apple ID终于绑定PayPal成功 无可奈何的页面增强方案 LogStash的调试 GitLab Shell如何通过SSH工作 Python打开类 荒原 [Theme] Bitcron主题Mixedpaper发布! Ngrok端口转发 故事之五 - 柠檬茶 故事之四 - 我是天才 故事之一 Arch滚挂了怎么办? OpenWrt内网IPv6之二 某次更新后Primusrun不能启动Dota2 OpenWrt的DNS智能解析方案 替换Google CDN库 使用Privoxy将socks代理转化为http代理 ArchLinux之软件篇 再次安装ArchLinux手记 博客再次重生 搞了个Minecraft服务器 【LnV工作室荣誉出品】小苹果MV华农大版 雨梦 醉臥石中笑人間 路由器内网IPV6地址分配 OPENWRT安装软件的两个问题 路由器上进行锐捷认证 改了BIOS的LOGO Windows下搭建我的C/C++的开发环境 Linux下用Mentohust认证校园网 Archlinux+Windows 双系统安装手记(UEFI+GPT) Google-code-prettify代码高亮 《末世迷踪》 Hello Net World!
Docker Clash 和 透明代理
2020-10-07 · via WAYJAM

Docker Clash

在适当目录新建 clash-config 文件夹,然后在里面新建 config.yaml,如果是订阅链接则直接下载链接命名为 config.yaml 即可。

以下例子 Docker 容器启动直接使用 Host 模式,您也可以选择只将有用端口暴露到宿主机。

docker run -d \
--name clash \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-v $(pwd)/clash-config:/root/.config/clash \
dreamacro/clash

Web UI

如果系统已经有 Nginx,则直接下载 https://github.com/haishanh/yacd/archive/gh-pages.zip 到 Nginx 的 www 目录解压即可,另外也可以使用 Docker 镜像启动:

docker run -p 1234:80 -d --rm haishanh/yacd

打开 WebUI 地址,填入 clash 的 API 地址(即 IP + config.yamlexternal-controller端口号 )和 Secret 即可。

代理

MacOS

MacOS 配置代理的方式在「设置」-「网络」-「选择网络如Wi-FI」-「高级」-「代理」,将 HTTP、HTTPS、SOCKS 都配置为 IP + 配置的mixed-port(clash 目前可配置 mixed-port 同时支持 HTTP(S) 和 SOCKS)。

代理配置

一般情况下,代理服务器都是固定的局域网内的一台机器,如果是 MacBook 到了其他环境就无法使用代理了,此时取消配置代理。所以需要一个方法自动地根据网络环境,开关代理。可以在「网络」配置下新建一个位置,然后将代理配置到新位置的目标连接内,如「Wi-Fi」:

网络位置

终端代理

局域网其他机器(需要将下面的 localhost 改为代理服务器 IP )或者代理服务器本身终端使用的话,需要配置在 bashrczshrc 内:

# Define `setproxy` command to enable proxy configuration
setproxy() {
  export http_proxy="http://localhost:7890"
  export https_proxy="http://localhost:7890"
  export all_proxy="socks5://localhost:7890"
  echo "Proxy on"
}

# Define `unsetproxy` command to disable proxy configuration
unsetproxy() {
  unset http_proxy
  unset https_proxy
  unset all_proxy
  echo "Proxy off"
}

然后在终端内使用 setproxy 开启代理,unsetproxy 关闭代理。

透明代理

如果局域网内有很多这样的设备去配置代理,是一件十分麻烦的事情,那么此时可能透明代理方式可能更适用。

1. 转发

为了让系统有基本的路由转发功能,需要开一下 IP 转发。编辑 /etc/sysctl.conf 文件,将 net.ipv4.ip_forwardnet.ipv6.conf.all.forwarding 都改为 1,然后执行 sysctl -p 使配置生效。

cat /proc/sys/net/ipv4/ip_forward # 检查是否已生效
2. DNS

Ubuntu 以及其他的一些 Linux 发行版 默认使用了 systemd-resolved 提供域名解析服务,默认会占用服务器的53端口。由于我们需要使用 clash 提供的 DNS 服务,则需要禁止 system-resolved 监听端口或者直接将其停止。

# 停止服务
sudo systemctl stop systemd-resolved && systemctl disable systemd-resolved
# 或者取消监听端口(二者选其一)
vi /etc/systemd/resolved.conf
# 将 DNSStubListener 改为 no 
然后 sudo systemctl restart systemd-resolved
3. iptables

首先 clash 需要配置 tproxy-port ,以下为例子:

参照 clash-udp-tproxy-support: https://lancellc.gitbook.io/clash/start-clash/clash-udp-tproxy-support

以下例子,7893为 tproxy port,5353 为 clash dns port

# Port of HTTP(S) proxy server on the local end
port: 7890

# Port of SOCKS5 proxy server on the local end
socks-port: 7891

# Transparent proxy server port for Linux and macOS (Redirect TCP and TProxy UDP)
# redir-port: 7892

# Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
# tproxy-port: 7893

# HTTP(S) and SOCKS4(A)/SOCKS5 server on the same port
# mixed-port: 7890

原本需要使用到 redir port,从 v1.3.0 开始 Clash 支持了单独配置的 tproxy port。

# IP rules
ip rule add fwmark 1 table 100
ip route add local default dev lo table 100

# Bypass private IP address ranges
iptables -t mangle -N CLASH
iptables -t mangle -A CLASH -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A CLASH -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A CLASH -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A CLASH -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A CLASH -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A CLASH -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A CLASH -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A CLASH -d 240.0.0.0/4 -j RETURN

# Redirect
iptables -t mangle -A CLASH -p udp -j TPROXY --on-port 7893 --tproxy-mark 1
iptables -t mangle -A CLASH -p tcp -j TPROXY --on-port 7893 --tproxy-mark 1
iptables -t mangle -A PREROUTING ! -i docker0 -j CLASH

# DNS, Redirect 53 to 5353 
iptables -t nat -I PREROUTING -p udp --dport 53 -d 192.168.0.0/16 -j REDIRECT --to 5353

将上面保存为 set-iptables.sh 文件执行。

持久化

由于 iptables 规则会在重新启动后清空,因此需要 iptables-persistent 实现持久化:

sudo apt install iptables-persistent netfilter-persistent
netfilter-persistent save
netfilter-persistent start
iptables-save  > /etc/iptables/rules.v4

保存后 iptables 规则会在重新启动后自动加载,也可以使用netfilter-persistent reload 命令手动加载到 iptables。

IP 规则添加在 /etc/network/interfaceshttps://unix.stackexchange.com/questions/84552/set-persistent-routing-table-on-debian

        post-up ip rule add fwmark 1 table 100
        post-up ip route add local default dev lo table 100
4. 路由配置网关和DNS

在上级路由 DHCP 配置网关和 DNS 均为代理服务器的 IP 即可。

路由配置

至此,局域网内的所有设备都可以愉快的无障碍上网了。