parent
7061faa09a
commit
8668cee5dc
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||
|
@ -350,11 +350,12 @@ service_started() {
|
||||
config_get_bool router_proxy "proxy" "router_proxy" 0
|
||||
config_get_bool lan_proxy "proxy" "lan_proxy" 0
|
||||
### access control
|
||||
local access_control_mode bypass_china_mainland_ip proxy_tcp_dport proxy_udp_dport
|
||||
local access_control_mode bypass_china_mainland_ip proxy_tcp_dport proxy_udp_dport bypass_dscp
|
||||
config_get access_control_mode "proxy" "access_control_mode"
|
||||
config_get_bool bypass_china_mainland_ip "proxy" "bypass_china_mainland_ip" 0
|
||||
config_get proxy_tcp_dport "proxy" "proxy_tcp_dport" "0-65535"
|
||||
config_get proxy_udp_dport "proxy" "proxy_udp_dport" "0-65535"
|
||||
config_get bypass_dscp "proxy" "bypass_dscp"
|
||||
# prepare
|
||||
local tproxy_enable; tproxy_enable=0
|
||||
if [[ "$tcp_transparent_proxy_mode" == "tproxy" || "$udp_transparent_proxy_mode" == "tproxy" ]]; then
|
||||
@ -477,6 +478,13 @@ service_started() {
|
||||
for proxy_dport in $proxy_udp_dport; do
|
||||
nft add element inet "$FW_TABLE" proxy_dport \{ "udp" . "$proxy_dport" \}
|
||||
done
|
||||
if [ -n "$bypass_dscp" ]; then
|
||||
log "Transparent Proxy" "Bypass DSCP: $bypass_dscp."
|
||||
local dscp
|
||||
for dscp in $bypass_dscp; do
|
||||
nft add element inet "$FW_TABLE" bypass_dscp \{ "$dscp" \}
|
||||
done
|
||||
fi
|
||||
# router proxy
|
||||
if [ "$router_proxy" == 1 ]; then
|
||||
log "Transparent Proxy" "Set proxy for router."
|
||||
|
@ -16,6 +16,11 @@ table inet mihomo {
|
||||
}
|
||||
}
|
||||
|
||||
set bypass_dscp {
|
||||
type dscp
|
||||
flags interval
|
||||
}
|
||||
|
||||
set dns_hijack_nfproto {
|
||||
type nf_proto
|
||||
flags interval
|
||||
@ -178,6 +183,8 @@ table inet mihomo {
|
||||
ip6 daddr @china_ip6 counter return
|
||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return
|
||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
||||
meta l4proto { tcp, udp } ip dscp == @bypass_dscp counter return
|
||||
meta l4proto { tcp, udp } ip6 dscp == @bypass_dscp counter return
|
||||
}
|
||||
|
||||
chain nat_output {
|
||||
@ -192,6 +199,8 @@ table inet mihomo {
|
||||
ip6 daddr @china_ip6 counter return
|
||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return
|
||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
||||
meta l4proto { tcp, udp } ip dscp == @bypass_dscp counter return
|
||||
meta l4proto { tcp, udp } ip6 dscp == @bypass_dscp counter return
|
||||
}
|
||||
|
||||
chain mangle_prerouting {
|
||||
@ -206,6 +215,8 @@ table inet mihomo {
|
||||
ip6 daddr @china_ip6 counter return
|
||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return
|
||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
||||
meta l4proto { tcp, udp } ip dscp == @bypass_dscp counter return
|
||||
meta l4proto { tcp, udp } ip6 dscp == @bypass_dscp counter return
|
||||
meta l4proto udp th dport 53 counter return
|
||||
}
|
||||
|
||||
@ -221,6 +232,8 @@ table inet mihomo {
|
||||
ip6 daddr @china_ip6 counter return
|
||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport ip daddr != $FAKE_IP counter return
|
||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
||||
meta l4proto { tcp, udp } ip dscp == @bypass_dscp counter return
|
||||
meta l4proto { tcp, udp } ip6 dscp == @bypass_dscp counter return
|
||||
meta l4proto udp th dport 53 counter return
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user