前言
已經在一台阿里雲ecs上搭建好openvpn, 彈性公網IP綁定這台ECS,剩下所有ecs都在華北二區,一個vpc內,沒有公網IP。通過購買阿里雲 雲解析DNS 服務,使用PrivateZone,搭建雲上內網DNS服務。本地PC掛上vpn后,連接vpn成功,ping vpc內的 ecs服務器能ping通,ping 內網域名不通,咨詢阿里雲技術,沒有解決,推銷讓購買他們自己的vpn。最終刪掉 阿里雲 雲解析DNS 服務,自己在 openvpn 那台ecs上搭建coredns,實現本地PC掛上vpn后,能ping通 阿里雲ecs 內網域名。
搭建coredns
[root@openvpn ~]# wget https://github.com/coredns/coredns/releases/download/v1.8.7/coredns_1.8.7_linux_amd64.tgz [root@openvpn ~]# tar zxf coredns_1.8.7_linux_amd64.tgz You have new mail in /var/spool/mail/root [root@openvpn ~]# ll total 60968 -rwxr-xr-x 1 33 tape 48738304 Jan 14 22:11 coredns -rw-r--r-- 1 root root 13675360 Feb 8 15:40 coredns_1.8.7_linux_amd64.tgz -rw-r--r-- 1 root root 1724 Jan 26 17:09 openvpn.sh -rw-r--r-- 1 root root 919 Feb 4 22:59 send-mail.py -rw-r--r-- 1 root root 111 Jan 26 13:22 test.sh -rw-r--r-- 1 root root 1289 Feb 7 09:42 useraddvpn.sh [root@openvpn ~]# mv coredns /usr/bin/ [root@openvpn ~]# useradd coredns -s /sbin/nologin [root@openvpn ~]# mkdir /etc/coredns [root@openvpn ~]# cat /etc/coredns/Corefile [root@openvpn coredns]# cat /etc/coredns/Corefile .:53 { # 綁定內網dns的 ip bind 172.16.0.40 # 先走本機的hosts # https://coredns.io/plugins/hosts/ hosts { # 需要解析的域名少我們這里直接用hosts插件即可完成需求 172.16.0.39 harbor.xxx.com #每台ECS自定義的內網域名和對應的內網ip,按行添加即可 172.16.0.42 dev.xxx.com 172.16.0.56 build-agent.xxx.com # ttl ttl 60 # 重載hosts配置 reload 1m # 繼續執行 fallthrough } # file enables serving zone data from an RFC 1035-style master file. # https://coredns.io/plugins/file/ # file service.signed service # 最后所有的都轉發到系統配置的上游dns服務器去解析 forward . /etc/resolv.conf # 緩存時間ttl, cache 10 # 自動加載配置文件的間隔時間,建議降低時間,生效快 reload 2s # 輸出日志 log # 輸出錯誤 errors } [root@openvpn coredns]# [root@openvpn ~]# cat /usr/lib/systemd/system/coredns.service [Unit] Description=CoreDNS DNS server Documentation=https://coredns.io After=network.target [Service] PermissionsStartOnly=true LimitNOFILE=1048576 LimitNPROC=512 CapabilityBoundingSet=CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_BIND_SERVICE NoNewPrivileges=true User=coredns ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile ExecReload=/bin/kill -SIGUSR1 $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target [root@openvpn ~]# systemctl enable coredns Created symlink from /etc/systemd/system/multi-user.target.wants/coredns.service to /usr/lib/systemd/system/coredns.service. [root@openvpn ~]# systemctl restart coredns
每台ECS修改/etc/resolv.conf
剩下內網的ecs修改/etc/resolv.conf,添加 dns服務器的ip地址
[root@harbor ~]# cat /etc/resolv.conf #options timeout:2 attempts:3 rotate single-request-reopen #; generated by /usr/sbin/dhclient-script #nameserver 100.100.2.136 #nameserver 100.100.2.138 nameserver 172.16.0.40 [root@harbor ~]#
本地測試域名解析
本地PC掛上vpn后,測試,ping 阿里雲 vpc內地 私網域名,正常。