direct.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. '+bogon'
  40. ]
  41. }
  42. } as const satisfies Record<string, DNSMapping>;
  43. export const LAN = {
  44. ROUTER: {
  45. dns: 'system',
  46. hosts: {},
  47. realip: false,
  48. domains: [
  49. '+home',
  50. // 'zte.home', // ZTE CPE
  51. // 'airbox.home',
  52. // 'bthub.home',
  53. // 'bthomehub.home',
  54. // 'hitronhub.home',
  55. // 'web.setup.home'
  56. // Aruba Router
  57. '$instant.arubanetworks.com',
  58. '$setmeup.arubanetworks.com',
  59. // ASUS router
  60. '$router.asus.com',
  61. '$repeater.asus.com',
  62. 'asusrouter.com',
  63. // NetGear
  64. 'routerlogin.net',
  65. 'routerlogin.com',
  66. // Tenda WiFi
  67. // 'tendawifi.com',
  68. // TP-Link Router
  69. 'tplinkwifi.net',
  70. 'tplogin.cn',
  71. 'tplinkap.net',
  72. 'tplinkmodem.net',
  73. 'tplinkplclogin.net',
  74. 'tplinkrepeater.net',
  75. // UniFi
  76. '+ui.direct',
  77. '$unifi',
  78. // Other Router
  79. // '$router.com',
  80. '+huaweimobilewifi.com',
  81. '+router',
  82. // 'my.router',
  83. // 'samsung.router',
  84. // '$easy.box', // Vodafone EasyBox
  85. '$aterm.me',
  86. '$console.gl-inet.com',
  87. // '$fritz.box',
  88. // '$fritz.repeater',
  89. // '$myfritz.box',
  90. // '$speedport.ip', // Telekom
  91. // '$giga.cube', // Vodafone GigaCube
  92. '$homerouter.cpe', // Huawei LTE CPE
  93. '$mobile.hotspot', // T-Mobile Hotspot
  94. '$ntt.setup',
  95. '$pi.hole',
  96. '+plex.direct'
  97. // 'web.setup'
  98. ]
  99. },
  100. LAN: {
  101. dns: 'system',
  102. hosts: {
  103. localhost: ['127.0.0.1']
  104. },
  105. realip: true,
  106. domains: [
  107. '+lan',
  108. // 'amplifi.lan',
  109. // '$localhost',
  110. '+localdomain',
  111. 'home.arpa',
  112. // AS112
  113. '10.in-addr.arpa',
  114. '16.172.in-addr.arpa',
  115. '17.172.in-addr.arpa',
  116. '18.172.in-addr.arpa',
  117. '19.172.in-addr.arpa',
  118. // '2?.172.in-addr.arpa',
  119. '20.172.in-addr.arpa',
  120. '21.172.in-addr.arpa',
  121. '22.172.in-addr.arpa',
  122. '23.172.in-addr.arpa',
  123. '24.172.in-addr.arpa',
  124. '25.172.in-addr.arpa',
  125. '26.172.in-addr.arpa',
  126. '27.172.in-addr.arpa',
  127. '28.172.in-addr.arpa',
  128. '29.172.in-addr.arpa',
  129. '30.172.in-addr.arpa',
  130. '31.172.in-addr.arpa',
  131. '168.192.in-addr.arpa',
  132. '254.169.in-addr.arpa'
  133. ]
  134. }
  135. } as const satisfies Record<string, DNSMapping>;