readme: update readme.

This commit is contained in:
Nick Peng
2023-02-01 22:52:58 +08:00
parent 26d16eb9dc
commit 108f514b83

View File

@@ -816,7 +816,8 @@ entware|ipkg update<br />ipkg install smartdns|软件源路径:<https://bin.en
TPROXY支持UDPTCP的转发配置稍复杂。 TPROXY支持UDPTCP的转发配置稍复杂。
REDIRECT仅支持TCP配置简单。 REDIRECT仅支持TCP配置简单。
此处仅以最常用的iptable/REDIRECT配合ipset的配置为例具体转发配置如下
1. 配置REDIRECT或TPROXY转发规则
- 在smartdns.conf中设置需要透明转发的域名列表比如要将`example.com`进行透明转发。则使用ipset选项设置`example.com`的ipset规则为`proxy`。 - 在smartdns.conf中设置需要透明转发的域名列表比如要将`example.com`进行透明转发。则使用ipset选项设置`example.com`的ipset规则为`proxy`。
@@ -827,8 +828,11 @@ entware|ipkg update<br />ipkg install smartdns|软件源路径:<https://bin.en
# -address #6: 停用IPV6解析。 # -address #6: 停用IPV6解析。
domain-rules /example.com/ -ipset proxy -c none -address #6 domain-rules /example.com/ -ipset proxy -c none -address #6
``` ```
1. 方式一: TCP REDIRECT转发
- 此方式配置简单仅支持TCP的转发。
执行shell命令设置iptable规则如果仅转发TCP则可以直接使用REDIRECT的规则如果需要同时转发UDP和TCP可以使用TPROXY的转发规则。如下规则按实际需求选择。具体配置如下
- 执行shell命令设置iptable规则将匹配的域名请求进行透明转发规则参考如下
```shell ```shell
# 创建ipset集合 # 创建ipset集合
@@ -839,7 +843,31 @@ entware|ipkg update<br />ipkg install smartdns|软件源路径:<https://bin.en
- 在本机1081端口开启REDIRECT模式的转发程序。 - 在本机1081端口开启REDIRECT模式的转发程序。
- 额外说明 1. 方式二TCP/UDP TPROXY转发
- 此方式可同时转发TCP和UDP。
执行shell命令设置iptable规则将匹配的域名TCP/UDP请求进行TPROXY方式透明转发规则参考如下
```shell
# 设置路由规则
ip rule add fwmark 1104 lookup 1104
ip route add local 0.0.0.0/0 dev lo table 1104
# 创建ipset集合
ipset create proxy hash:net
# 设置转发规则UDPTCP方式的TPROXY转发
iptables -t mangle -N SMARTDNS
iptables -t mangle -A SMARTDNS -p tcp -m set --match-set proxy dst -j TPROXY --on-ip 127.0.0.1 --on-port 1081 --tproxy-mark 1104
iptables -t mangle -A SMARTDNS -p udp -m set --match-set proxy dst -j TPROXY --on-ip 127.0.0.1 --on-port 1081 --tproxy-mark 1104
iptables -t mangle -A SMARTDNS -j ACCEPT
iptables -t mangle -A PREROUTING -j SMARTDNS
```
- 在本机的1081端口启动IP透明转发程序。
1. 额外说明
为保证DNS查询结果的位置亲和性可以使用smartdns的`server`代理参数,将对应域名的查询请求,通过代理查询,使结果位置更好。如: 为保证DNS查询结果的位置亲和性可以使用smartdns的`server`代理参数,将对应域名的查询请求,通过代理查询,使结果位置更好。如:
```shell ```shell