direct.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. export interface DNSMapping {
  2. hosts: {
  3. [domain: string]: string[]
  4. },
  5. /** which also disallows wildcard */
  6. realip: boolean,
  7. dns: string,
  8. /**
  9. * domain[0]
  10. *
  11. * + subdomain only
  12. * $ domain only exact match
  13. * [none] domain and subdomain
  14. */
  15. domains: string[]
  16. }
  17. export const DIRECTS = {
  18. HOTSPOT_CAPTIVE_PORTAL: {
  19. dns: 'system',
  20. hosts: {},
  21. realip: false,
  22. domains: [
  23. 'securelogin.com.cn',
  24. '$captive.apple.com',
  25. '$hotspot.cslwifi.com'
  26. ]
  27. },
  28. SYSTEM: {
  29. dns: 'system',
  30. hosts: {},
  31. realip: true,
  32. domains: [
  33. '+m2m',
  34. // '+ts.net', // TailScale Magic DNS
  35. // AdGuard
  36. '$injections.adguard.org',
  37. '$local.adguard.org',
  38. // Auto Discovery
  39. '+_tcp',
  40. '+bogon',
  41. '+_msdcs'
  42. ]
  43. }
  44. } as const satisfies Record<string, DNSMapping>;
  45. export const LAN = {
  46. ROUTER: {
  47. dns: 'system',
  48. hosts: {},
  49. realip: false,
  50. domains: [
  51. '+home',
  52. // 'zte.home', // ZTE CPE
  53. // 'airbox.home',
  54. // 'bthub.home',
  55. // 'bthomehub.home',
  56. // 'hitronhub.home',
  57. // 'web.setup.home'
  58. // Aruba Router
  59. '$instant.arubanetworks.com',
  60. '$setmeup.arubanetworks.com',
  61. // ASUS router
  62. '$router.asus.com',
  63. '$repeater.asus.com',
  64. 'asusrouter.com',
  65. // NetGear
  66. 'routerlogin.net',
  67. 'routerlogin.com',
  68. // Tenda WiFi
  69. // 'tendawifi.com',
  70. // TP-Link Router
  71. 'tplinkwifi.net',
  72. 'tplogin.cn',
  73. 'tplinkap.net',
  74. 'tplinkmodem.net',
  75. 'tplinkplclogin.net',
  76. 'tplinkrepeater.net',
  77. // UniFi
  78. '+ui.direct',
  79. '$unifi',
  80. // Other Router
  81. // '$router.com',
  82. '+huaweimobilewifi.com',
  83. '+router',
  84. // 'my.router',
  85. // 'samsung.router',
  86. // '$easy.box', // Vodafone EasyBox
  87. '$aterm.me',
  88. '$console.gl-inet.com',
  89. // '$fritz.box',
  90. // '$fritz.repeater',
  91. // '$myfritz.box',
  92. // '$speedport.ip', // Telekom
  93. // '$giga.cube', // Vodafone GigaCube
  94. '$homerouter.cpe', // Huawei LTE CPE
  95. '$mobile.hotspot', // T-Mobile Hotspot
  96. '$ntt.setup',
  97. '$pi.hole',
  98. '+plex.direct'
  99. // 'web.setup'
  100. ]
  101. },
  102. LAN: {
  103. dns: 'system',
  104. hosts: {
  105. localhost: ['127.0.0.1']
  106. },
  107. realip: true,
  108. domains: [
  109. '+lan',
  110. // 'amplifi.lan',
  111. // '$localhost',
  112. '+localdomain',
  113. 'home.arpa',
  114. // AS112
  115. '10.in-addr.arpa',
  116. '16.172.in-addr.arpa',
  117. '17.172.in-addr.arpa',
  118. '18.172.in-addr.arpa',
  119. '19.172.in-addr.arpa',
  120. // '2?.172.in-addr.arpa',
  121. '20.172.in-addr.arpa',
  122. '21.172.in-addr.arpa',
  123. '22.172.in-addr.arpa',
  124. '23.172.in-addr.arpa',
  125. '24.172.in-addr.arpa',
  126. '25.172.in-addr.arpa',
  127. '26.172.in-addr.arpa',
  128. '27.172.in-addr.arpa',
  129. '28.172.in-addr.arpa',
  130. '29.172.in-addr.arpa',
  131. '30.172.in-addr.arpa',
  132. '31.172.in-addr.arpa',
  133. '168.192.in-addr.arpa',
  134. '254.169.in-addr.arpa'
  135. ]
  136. }
  137. } as const satisfies Record<string, DNSMapping>;