Youtube视频
相关链接
sing-box example
{
"log": {
"disabled": false,
"level": "info",
"output": "/var/log/box.log",
"timestamp": true
},
"dns": {
"servers": [
{
"tag": "alidns",
"address": "https://223.5.5.5/dns-query",
"address_strategy": "prefer_ipv4",
"strategy": "ipv4_only",
"detour": "direct"
},
{
"tag": "cf",
"address": "https://1.1.1.1/dns-query",
"strategy": "ipv4_only",
"detour": "direct"
},
{
"tag": "block",
"address": "rcode://success"
}
],
"rules": [
{
"geosite": [
"cn"
],
"domain_suffix": [
".cn"
],
"server": "alidns",
"disable_cache": false
},
{
"geosite": [
"category-ads-all"
],
"server": "block",
"disable_cache": true
}
],
"final": "cf",
"strategy": "",
"disable_cache": false,
"disable_expire": false
},
"inbounds": [
// 注意:二选一
{
"type": "tproxy",
"tag": "tproxy-in",
"listen": "::",
"listen_port": 12345,
"tcp_fast_open": true,
"udp_fragment": true,
"sniff": true
},
{
"tag": "tun-in",
"type": "tun",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"strict_route": true,
"stack": "system",
"mtu": 9000,
"sniff": true
}
],
"outbounds": [
// 下面配置你的代理节点,以下为vless-ws
{
"type": "vless",
"tag": "proxy",
"server": "你的域名或者IP",
"server_port": 443,
"uuid": "你的UUID",
"flow": "",
// 加上该拨号标记字段,过滤自身流量
"routing_mark": 1234,
"tls": {
"enabled": true,
"server_name": "你的域名",
"utls": {
"enabled": true,
"fingerprint": "chrome"
}
},
"packet_encoding": "",
"transport": {
"type": "ws",
"path": "/video",
"headers": {},
"max_early_data": 0,
"early_data_header_name": ""
}
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
},
{
"type": "dns",
"tag": "dns-out"
}
],
"route": {
"geoip": {
"path": "geoip.db",
"download_url": "https://github.com/SagerNet/sing-geoip/releases/latest/download/geoip.db",
"download_detour": "direct"
},
"geosite": {
"path": "geosite.db",
"download_url": "https://github.com/SagerNet/sing-geosite/releases/latest/download/geosite.db",
"download_detour": "direct"
},
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"geosite": [
"cn",
"private"
],
"geoip": [
"cn",
"private"
],
"domain_suffix": [
".cn"
],
"outbound": "direct"
},
{
"geosite": [
"category-ads-all"
],
"outbound": "block"
}
],
"auto_detect_interface": true,
"final": "proxy"
},
"experimental": {}
}
iptables example
###################### 路由表设置
ip route add local default dev lo table 100
ip rule add fwmark 1 table 100
###################### 局域网流量设置
iptables -t mangle -N SING_BOX
iptables -t mangle -A SING_BOX -d 100.64.0.0/10 -j RETURN
iptables -t mangle -A SING_BOX -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SING_BOX -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SING_BOX -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SING_BOX -d 192.0.0.0/24 -j RETURN
iptables -t mangle -A SING_BOX -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX -d 255.255.255.255/32 -j RETURN
# 修改为你的内网网段
iptables -t mangle -A SING_BOX -d 10.10.10.0/24 -p tcp ! --dport 53 -j RETURN
iptables -t mangle -A SING_BOX -d 10.10.10.0/24 -p udp ! --dport 53 -j RETURN
# 修改为你的透明代理程序的端口
iptables -t mangle -A SING_BOX -p tcp -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A SING_BOX -p udp -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A PREROUTING -j SING_BOX
###################### 本机流量设置
iptables -t mangle -N SING_BOX_SELF
iptables -t mangle -A SING_BOX_SELF -d 100.64.0.0/10 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 192.0.0.0/24 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 255.255.255.255/32 -j RETURN
iptables -t mangle -A SING_BOX_SELF -j RETURN -m mark --mark 1234
# 修改为你的内网网段
iptables -t mangle -A SING_BOX_SELF -d 10.10.10.0/24 -p tcp ! --dport 53 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 10.10.10.0/24 -p udp ! --dport 53 -j RETURN
iptables -t mangle -A SING_BOX_SELF -p tcp -j MARK --set-mark 1
iptables -t mangle -A SING_BOX_SELF -p udp -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -j SING_BOX_SELF
nftables example
配置文件路径:/etc/nftables.conf
刷新配置:nft -f /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
define RESERVED_IP = {
100.64.0.0/10,
127.0.0.0/8,
169.254.0.0/16,
172.16.0.0/12,
192.0.0.0/24,
224.0.0.0/4,
240.0.0.0/4,
255.255.255.255/32
}
table ip sing-box {
chain prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr $RESERVED_IP return
# 修改为你的内网网段
ip daddr 10.10.10.0/24 tcp dport != 53 return
ip daddr 10.10.10.0/24 udp dport != 53 return
# 修改为你的透明代理程序的端口
ip protocol tcp tproxy to :12345 meta mark set 1
ip protocol udp tproxy to :12345 meta mark set 1
}
chain output {
type route hook output priority mangle; policy accept;
ip daddr $RESERVED_IP return
# 修改为你的内网网段
ip daddr 10.10.10.0/24 tcp dport != 53 return
ip daddr 10.10.10.0/24 udp dport != 53 return
meta mark set 1234 return
ip protocol tcp meta mark set 1
ip protocol udp meta mark set 1
}
}
Tun模式设置
Tun模式需要开启ip转发
echo 1 > /proc/sys/net/ipv4/ip_forward
sing-box配置系统服务
/etc/systemd/system/sing-box@.service
[Unit]
Description=sing-box service
Documentation=https://sing-box.sagernet.org
After=network.target nss-lookup.target
[Service]
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_SYS_PTRACE CAP_DAC_READ_SEARCH
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_SYS_PTRACE CAP_DAC_READ_SEARCH
ExecStart=/usr/bin/sing-box -D /var/lib/sing-box-%i -c /etc/sing-box/%i.json run
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=10s
LimitNOFILE=infinity
[Install]
WantedBy=multi-user.target
27 条评论
主路由是ros,透明网关是ubuntu安装的singbox,你教程中的,我想在ros开启ipv6可以看iptv
大佬,ipv6有什么好建议吗?
请教,下出站里面的UUID是哪里获取的呢?
请教,下出站里面的UUID是哪里获取的呢?
请教,下出站里面的UUID是哪里获取的呢?
请教一下:tun 设置ip转发只是对ipv4设置了,如果是ipv6呢?
我看其它的一些通过iptables配置转发时,都会增加下面的一句,防止死循环。
# 跳过 clash 程序本身发出的流量, 防止死循环(clash 程序需要使用 "clash" 用户启动)
iptables -t mangle -A OUTPUT -p tcp -m owner --uid-owner clash -j RETURN
但是你提供的没有这一句,是因为加了路由表的原因吗?
ip route add local default dev lo table 100
ip rule add fwmark 1 table 100
请问下一个公网服务器如果要使用sing-box自身被代理应该如何修改配置,以上配置在NAT机上面配置没问题,可在公网机器上一旦配置这台机器就无法连接了,公网服务器要实现本机代理iptables是不是需要用到nat表?
我参考资料想做singbox tun旁路网关,网关设备已经做了ipv4和v6的ip转发,但是客户端设备连入网关后并不能上网,换了很多方法都不行。但是网关设备却是可以正常上网的,想问问是还有什么设置是我没注意到的么
感谢大佬能否出期openwrt配置的教程,尤其是防火墙规则,小白一个总自己不会搞,期待中。。。。
在openwrt上如何安装和配置,有没有相关教程啊,多谢!我现在用passwall安装了sing-box,写了json,用tun模式不用任何配置也能跑起来,但是网速测试(电信)降到200M左右,我家是千兆,用openclash可测试到850M,不知道为啥,是因为tun模式吗?
我不是很懂,为什么passwall需要安装sing-box呢。现在passwall可以使用sing-box没错啦,但是passwall的透明代理应该是使用tproxy或者redirect实现的吧。
我没有看到passwall可以直接使用sing-box的tun来实现透明代理哦。还是我的版本较低的原因呢?
我在openwrt上面opkg安装了sing-box,后来又直接下载了sing-box最新版直接拖到/usr/bin/目录下,然后查询得到:
root@OpenWrt:~# sing-box version
sing-box version 1.8.0
Environment: go1.21.5 linux/arm
Tags: with_gvisor,with_quic,with_dhcp,with_wireguard,with_ech,with_utls,with_reality_server,with_acme,with_clash_api
Revision: 11bec79a06268f00e7c5a7d5509245855d6dd522
CGO: disabled
按照这个文章:https://github.com/rezconf/Sing-box/wiki/How-to-Run ,将配置文件覆盖/etc/init.d/sing-box 文件,能运行,但是测速后,下载速度只有200M,宽带是1000M的,正常测速是在850M左右,打开网页明显变慢,不知道问什么,是不是防火墙没有配置好?
感谢楼主大大,我用了tproxy的方式之后,我的代理服务器的连接似乎也走了sing-box,在代理服务器上好像没法用ssh上传代码到gitee上了,有没有什么办法解决这个问题呀
你如果想要局域网的访问代理服务器的流量不经过sing-box,只需要添加防火墙规则就可以。
为什么我在iptables添加了规则了,但是透明代理还是不行?
能具体点么?
请教大佬,在ubuntu22.04 server开启ufw防火墙的情况下,怎样设置tun模式的防火墙规则
ufw底层还是iptables,而且tun模式应该不用怎么设置防火墙规则吧
感谢回复,经过测试不开ufw一切正常,开启ufw就不通,后来使用
ufw allow in on tun0 to any
可以解决,但感觉这样不安全,对防火墙规则不太懂。
手动添加规则只是临时的,没有持久化。重启会失效,像ufw这种前端工具,可能会清空iptables的规则,从而导致失效。
建议使用ufw或者iptables或者nftables其一。
可以解决,不安全是针对内网,毕竟透明代理程序一般是运行在家庭内网。那其实还行。
谢谢!现在使用docker部署sing-box客户端设置socks,然后在openwrt使用ssrp添加socks节点
tproxy还要配置防火墙这样麻烦,那比起tun模式有什么优点吗?
Tproxy可以根据防火墙规则精准控制流量,而Tun模式会拦截所有流量包括DNS。
请教大佬: 在按照视频使用tun模式的时候, 客户端的dns情况并没有被拦截
需要看你的配置以及日志。
解决了 是因为openwrt劫持了53端口