mirror of
https://github.com/xjasonlyu/tun2socks.git
synced 2025-10-08 02:00:43 +08:00
rename Dns to DNS
This commit is contained in:
@@ -9,24 +9,26 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
args.EnableFakeDns = flag.Bool("fakeDns", false, "Enable fake DNS")
|
||||
args.DnsCacheSize = flag.Int("dnsCacheSize", 100, "Size of DNS LRU Cache")
|
||||
args.FakeDnsAddr = flag.String("fakeDnsAddr", ":53", "Listen address of fake DNS")
|
||||
args.EnableFakeDNS = flag.Bool("fakeDNS", false, "Enable fake DNS")
|
||||
args.DNSCacheSize = flag.Int("dnsCacheSize", 100, "Size of DNS LRU Cache")
|
||||
args.FakeDNSAddr = flag.String("fakeDNSAddr", ":53", "Listen address of fake DNS")
|
||||
args.FakeIPRange = flag.String("fakeIPRange", "198.18.0.1/16", "Fake IP CIDR range for DNS")
|
||||
args.FakeDnsHosts = flag.String("fakeDnsHosts", "", "DNS hosts mapping, e.g. 'example.com=1.1.1.1,example.net=2.2.2.2'")
|
||||
args.FakeDNSHosts = flag.String("fakeDNSHosts", "", "DNS hosts mapping, e.g. 'example.com=1.1.1.1,example.net=2.2.2.2'")
|
||||
|
||||
addPostFlagsInitFn(func() {
|
||||
if *args.EnableFakeDns {
|
||||
fakeDnsServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDnsHosts, *args.DnsCacheSize)
|
||||
if *args.EnableFakeDNS {
|
||||
fakeDNSServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDNSHosts, *args.DNSCacheSize)
|
||||
if err != nil {
|
||||
panic("create fake dns server error")
|
||||
}
|
||||
if err := fakeDnsServer.StartServer(*args.FakeDnsAddr); err != nil {
|
||||
|
||||
fakedns.ServeAddr = *args.FakeDNSAddr
|
||||
if err := fakeDNSServer.Start(); err != nil {
|
||||
panic("cannot start fake dns server")
|
||||
}
|
||||
fakeDns = fakeDnsServer
|
||||
fakeDNS = fakeDNSServer
|
||||
} else {
|
||||
fakeDns = nil
|
||||
fakeDNS = nil
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@@ -4,15 +4,9 @@ import (
|
||||
"net"
|
||||
)
|
||||
|
||||
const CommonDnsPort = 53
|
||||
|
||||
type FakeDns interface {
|
||||
// GenerateFakeResponse generates a fake dns response for the specify request.
|
||||
// GenerateFakeResponse(request []byte) ([]byte, error)
|
||||
|
||||
type FakeDNS interface {
|
||||
Start() error
|
||||
Stop() error
|
||||
// IPToHost returns the corresponding domain for the given IP.
|
||||
IPToHost(ip net.IP) (string, bool)
|
||||
|
||||
// IsFakeIP checks if the given ip is a fake IP.
|
||||
// IsFakeIP(ip net.IP) bool
|
||||
}
|
||||
|
@@ -19,15 +19,15 @@ type tcpHandler struct {
|
||||
proxyHost string
|
||||
proxyPort int
|
||||
|
||||
fakeDns dns.FakeDns
|
||||
fakeDNS dns.FakeDNS
|
||||
sessionStater stats.SessionStater
|
||||
}
|
||||
|
||||
func NewTCPHandler(proxyHost string, proxyPort int, fakeDns dns.FakeDns, sessionStater stats.SessionStater) core.TCPConnHandler {
|
||||
func NewTCPHandler(proxyHost string, proxyPort int, fakeDNS dns.FakeDNS, sessionStater stats.SessionStater) core.TCPConnHandler {
|
||||
return &tcpHandler{
|
||||
proxyHost: proxyHost,
|
||||
proxyPort: proxyPort,
|
||||
fakeDns: fakeDns,
|
||||
fakeDNS: fakeDNS,
|
||||
sessionStater: sessionStater,
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,7 @@ func (h *tcpHandler) Handle(conn net.Conn, target *net.TCPAddr) error {
|
||||
var localConn = conn
|
||||
|
||||
// Lookup fakeDNS host record
|
||||
targetHost, err := lookupHost(h.fakeDns, target)
|
||||
targetHost, err := lookupHost(h.fakeDNS, target)
|
||||
if err != nil {
|
||||
log.Warnf("lookup target host error: %v", err)
|
||||
return err
|
||||
|
@@ -23,15 +23,15 @@ type udpHandler struct {
|
||||
remoteAddrMap sync.Map
|
||||
remoteConnMap sync.Map
|
||||
|
||||
fakeDns dns.FakeDns
|
||||
fakeDNS dns.FakeDNS
|
||||
sessionStater stats.SessionStater
|
||||
}
|
||||
|
||||
func NewUDPHandler(proxyHost string, proxyPort int, timeout time.Duration, fakeDns dns.FakeDns, sessionStater stats.SessionStater) core.UDPConnHandler {
|
||||
func NewUDPHandler(proxyHost string, proxyPort int, timeout time.Duration, fakeDNS dns.FakeDNS, sessionStater stats.SessionStater) core.UDPConnHandler {
|
||||
return &udpHandler{
|
||||
proxyHost: proxyHost,
|
||||
proxyPort: proxyPort,
|
||||
fakeDns: fakeDns,
|
||||
fakeDNS: fakeDNS,
|
||||
sessionStater: sessionStater,
|
||||
timeout: timeout,
|
||||
}
|
||||
@@ -64,7 +64,7 @@ func (h *udpHandler) fetchUDPInput(conn core.UDPConn, input net.PacketConn, addr
|
||||
|
||||
func (h *udpHandler) Connect(conn core.UDPConn, target *net.UDPAddr) error {
|
||||
// Lookup fakeDNS host record
|
||||
targetHost, err := lookupHost(h.fakeDns, target)
|
||||
targetHost, err := lookupHost(h.fakeDNS, target)
|
||||
if err != nil {
|
||||
log.Warnf("lookup target host error: %v", err)
|
||||
return err
|
||||
|
@@ -13,7 +13,7 @@ import (
|
||||
)
|
||||
|
||||
// DNS lookup
|
||||
func lookupHost(fakeDns dns.FakeDns, target net.Addr) (targetHost string, err error) {
|
||||
func lookupHost(fakeDNS dns.FakeDNS, target net.Addr) (targetHost string, err error) {
|
||||
var targetIP net.IP
|
||||
switch addr := target.(type) {
|
||||
case *net.TCPAddr:
|
||||
@@ -27,8 +27,8 @@ func lookupHost(fakeDns dns.FakeDns, target net.Addr) (targetHost string, err er
|
||||
|
||||
targetHost = targetIP.String()
|
||||
// Replace with a domain name if target address IP is a fake IP
|
||||
if fakeDns != nil {
|
||||
if host, exist := fakeDns.IPToHost(targetIP); exist {
|
||||
if fakeDNS != nil {
|
||||
if host, exist := fakeDNS.IPToHost(targetIP); exist {
|
||||
targetHost = host
|
||||
}
|
||||
}
|
||||
|
@@ -11,4 +11,4 @@ config_route() {
|
||||
}
|
||||
|
||||
config_route &
|
||||
sudo ./build/tun2socks -tunAddr 240.0.0.2 -tunGw 240.0.0.1 -proxyServer 192.168.1.1:1080 -fakeDns -loglevel info -stats
|
||||
sudo ./build/tun2socks -tunAddr 240.0.0.2 -tunGw 240.0.0.1 -proxyServer 192.168.1.1:1080 -fakeDNS -loglevel info -stats
|
||||
|
@@ -7,4 +7,4 @@ config_route() {
|
||||
}
|
||||
|
||||
config_route &
|
||||
sudo ./build/tun2socks -tunAddr 240.0.0.2 -tunGw 240.0.0.1 -proxyServer 192.168.1.1:1080 -fakeDns -loglevel info -stats
|
||||
sudo ./build/tun2socks -tunAddr 240.0.0.2 -tunGw 240.0.0.1 -proxyServer 192.168.1.1:1080 -fakeDNS -loglevel info -stats
|
||||
|
Reference in New Issue
Block a user