rename Dns to DNS

This commit is contained in:
Jason
2019-08-14 20:42:19 +08:00
parent e92c6f9e57
commit 992344adf1
7 changed files with 27 additions and 31 deletions

View File

@@ -9,24 +9,26 @@ import (
) )
func init() { func init() {
args.EnableFakeDns = flag.Bool("fakeDns", false, "Enable fake DNS") args.EnableFakeDNS = flag.Bool("fakeDNS", false, "Enable fake DNS")
args.DnsCacheSize = flag.Int("dnsCacheSize", 100, "Size of DNS LRU Cache") args.DNSCacheSize = flag.Int("dnsCacheSize", 100, "Size of DNS LRU Cache")
args.FakeDnsAddr = flag.String("fakeDnsAddr", ":53", "Listen address of fake DNS") 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.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() { addPostFlagsInitFn(func() {
if *args.EnableFakeDns { if *args.EnableFakeDNS {
fakeDnsServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDnsHosts, *args.DnsCacheSize) fakeDNSServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDNSHosts, *args.DNSCacheSize)
if err != nil { if err != nil {
panic("create fake dns server error") 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") panic("cannot start fake dns server")
} }
fakeDns = fakeDnsServer fakeDNS = fakeDNSServer
} else { } else {
fakeDns = nil fakeDNS = nil
} }
}) })
} }

View File

@@ -4,15 +4,9 @@ import (
"net" "net"
) )
const CommonDnsPort = 53 type FakeDNS interface {
Start() error
type FakeDns interface { Stop() error
// GenerateFakeResponse generates a fake dns response for the specify request.
// GenerateFakeResponse(request []byte) ([]byte, error)
// IPToHost returns the corresponding domain for the given IP. // IPToHost returns the corresponding domain for the given IP.
IPToHost(ip net.IP) (string, bool) IPToHost(ip net.IP) (string, bool)
// IsFakeIP checks if the given ip is a fake IP.
// IsFakeIP(ip net.IP) bool
} }

View File

@@ -19,15 +19,15 @@ type tcpHandler struct {
proxyHost string proxyHost string
proxyPort int proxyPort int
fakeDns dns.FakeDns fakeDNS dns.FakeDNS
sessionStater stats.SessionStater 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{ return &tcpHandler{
proxyHost: proxyHost, proxyHost: proxyHost,
proxyPort: proxyPort, proxyPort: proxyPort,
fakeDns: fakeDns, fakeDNS: fakeDNS,
sessionStater: sessionStater, sessionStater: sessionStater,
} }
} }
@@ -86,7 +86,7 @@ func (h *tcpHandler) Handle(conn net.Conn, target *net.TCPAddr) error {
var localConn = conn var localConn = conn
// Lookup fakeDNS host record // Lookup fakeDNS host record
targetHost, err := lookupHost(h.fakeDns, target) targetHost, err := lookupHost(h.fakeDNS, target)
if err != nil { if err != nil {
log.Warnf("lookup target host error: %v", err) log.Warnf("lookup target host error: %v", err)
return err return err

View File

@@ -23,15 +23,15 @@ type udpHandler struct {
remoteAddrMap sync.Map remoteAddrMap sync.Map
remoteConnMap sync.Map remoteConnMap sync.Map
fakeDns dns.FakeDns fakeDNS dns.FakeDNS
sessionStater stats.SessionStater 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{ return &udpHandler{
proxyHost: proxyHost, proxyHost: proxyHost,
proxyPort: proxyPort, proxyPort: proxyPort,
fakeDns: fakeDns, fakeDNS: fakeDNS,
sessionStater: sessionStater, sessionStater: sessionStater,
timeout: timeout, 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 { func (h *udpHandler) Connect(conn core.UDPConn, target *net.UDPAddr) error {
// Lookup fakeDNS host record // Lookup fakeDNS host record
targetHost, err := lookupHost(h.fakeDns, target) targetHost, err := lookupHost(h.fakeDNS, target)
if err != nil { if err != nil {
log.Warnf("lookup target host error: %v", err) log.Warnf("lookup target host error: %v", err)
return err return err

View File

@@ -13,7 +13,7 @@ import (
) )
// DNS lookup // 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 var targetIP net.IP
switch addr := target.(type) { switch addr := target.(type) {
case *net.TCPAddr: case *net.TCPAddr:
@@ -27,8 +27,8 @@ func lookupHost(fakeDns dns.FakeDns, target net.Addr) (targetHost string, err er
targetHost = targetIP.String() targetHost = targetIP.String()
// Replace with a domain name if target address IP is a fake IP // Replace with a domain name if target address IP is a fake IP
if fakeDns != nil { if fakeDNS != nil {
if host, exist := fakeDns.IPToHost(targetIP); exist { if host, exist := fakeDNS.IPToHost(targetIP); exist {
targetHost = host targetHost = host
} }
} }

View File

@@ -11,4 +11,4 @@ config_route() {
} }
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

View File

@@ -7,4 +7,4 @@ config_route() {
} }
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