feat: replace cloudflare DNS with NextDNS
This commit is contained in:
parent
3f7d337e46
commit
7ac9709098
4 changed files with 62 additions and 44 deletions
8
internal/installers/assets/etc/resolv.conf
vendored
8
internal/installers/assets/etc/resolv.conf
vendored
|
@ -1,4 +1,4 @@
|
|||
nameserver 1.1.1.1
|
||||
nameserver 1.0.0.1
|
||||
nameserver 2606:4700:4700::1111
|
||||
nameserver 2606:4700:4700::1001
|
||||
nameserver 45.90.28.0
|
||||
nameserver 2a07:a8c0::
|
||||
nameserver 45.90.30.0
|
||||
nameserver 2a07:a8c1::
|
||||
|
|
9
internal/installers/assets/etc/systemd/resolv.conf
vendored
Normal file
9
internal/installers/assets/etc/systemd/resolv.conf
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Use 'systemd-analyze cat-config systemd/resolved.conf' to display the full config.
|
||||
# See resolved.conf(5) for details.
|
||||
|
||||
[Resolve]
|
||||
DNS=45.90.28.0
|
||||
DNS=2a07:a8c0::
|
||||
DNS=45.90.30.0
|
||||
DNS=2a07:a8c1::
|
||||
DNSOverTLS=yes
|
|
@ -1,40 +0,0 @@
|
|||
package installers
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
|
||||
"github.com/developomp/pompup/internal/wrapper"
|
||||
"github.com/pterm/pterm"
|
||||
)
|
||||
|
||||
//go:embed assets/etc/resolv.conf
|
||||
var _resolvConf string
|
||||
|
||||
func init() {
|
||||
register(&Installer{
|
||||
Name: "Cloudflare DNS",
|
||||
Desc: "1.1.1.1 DNS",
|
||||
Setup: func() {
|
||||
const filePath = "/etc/resolv.conf"
|
||||
|
||||
if wrapper.IsFileUpdated(filePath, _resolvConf) {
|
||||
return
|
||||
}
|
||||
|
||||
// remove immutable flag from /etc/resolv.conf
|
||||
err := wrapper.Run("sudo", "chattr", "-i", filePath)
|
||||
if err != nil {
|
||||
pterm.Fatal.Println("Failed to remove immutable flag from /etc/resolv.conf:", err)
|
||||
}
|
||||
|
||||
// write to /etc/resolv.conf
|
||||
wrapper.SudoWriteFile(filePath, _resolvConf)
|
||||
|
||||
// restore immutable flag
|
||||
err = wrapper.Run("sudo", "chattr", "+i", filePath)
|
||||
if err != nil {
|
||||
pterm.Fatal.Println("Failed to restore immutable flag of /etc/resolv.conf:", err)
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
49
internal/installers/nextdns.go
Normal file
49
internal/installers/nextdns.go
Normal file
|
@ -0,0 +1,49 @@
|
|||
package installers
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
|
||||
"github.com/developomp/pompup/internal/wrapper"
|
||||
"github.com/pterm/pterm"
|
||||
)
|
||||
|
||||
//go:embed assets/etc/resolv.conf
|
||||
var _resolvConf string
|
||||
|
||||
//go:embed assets/etc/systemd/resolv.conf
|
||||
var _systemdResolvConf string
|
||||
|
||||
func init() {
|
||||
register(&Installer{
|
||||
Name: "NextDNS",
|
||||
Desc: "private DNS",
|
||||
Setup: func() {
|
||||
updateResolvConf()
|
||||
|
||||
wrapper.SudoWriteFile("/etc/systemd/resolv.conf", _systemdResolvConf)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func updateResolvConf() {
|
||||
const filePath = "/etc/resolv.conf"
|
||||
|
||||
if wrapper.IsFileUpdated(filePath, _resolvConf) {
|
||||
return
|
||||
}
|
||||
|
||||
// remove immutable flag from /etc/resolv.conf
|
||||
err := wrapper.Run("sudo", "chattr", "-i", filePath)
|
||||
if err != nil {
|
||||
pterm.Fatal.Println("Failed to remove immutable flag from /etc/resolv.conf:", err)
|
||||
}
|
||||
|
||||
// write to /etc/resolv.conf
|
||||
wrapper.SudoWriteFile(filePath, _resolvConf)
|
||||
|
||||
// restore immutable flag
|
||||
err = wrapper.Run("sudo", "chattr", "+i", filePath)
|
||||
if err != nil {
|
||||
pterm.Fatal.Println("Failed to restore immutable flag of /etc/resolv.conf:", err)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue