純IPv6伺服器如何與純IPv4伺服器建立連線

今年(2024)早些時候,Amazon AWS開始對所有的固定IP (IPv4)收費,一個月一個IP 要收$6,比我用的Amazon  Elastic Compute Cloud (EC2)都貴了。由於我只是架設私人使用的一些雲端服務,這筆費用能省就省。為了能完全擺脫IPv4,著實花了不少時間修改設定,包含DNS、強制EC2不獲取 public IPv4 (是的,就算是系統指派給你的外部IP,只要是public IPv4,都是要收費的…)等等,

但是其中最頭痛的當屬如何讓我的伺服器能與純IPv4的伺服器溝通。例如,wordpress的官網(wordpress.org)就只有IPv4,所以我的這個個人網站就無法連上wordpress官網進行更新了。在查了無數的資料後,我找到了一個解決方案:Public NAT64 service。這是一個由個人提供的DNS64 + NAT64服務。他的網站是

https://nat64.net

目前有一些大公司有提供DNS64服務,例如google,這服務能讓IPv6的伺服器能夠”找到/看到”純IPv4的伺服器。但是如果一個純IPv6的伺服器想與純IPv4的伺服器提供的服務建立連結,那就會需要NAT64。上面的網站提供了多個DNS64+NAT64 的服務位址,還是免費的!我試用了之後,發現不但Wordpress的更新正常了,這些DNS64+NAT64的名稱伺服器 (name server)也能用在一些對純IPv6伺服器不支援的服務上。例如Amazon Web Services (AWS) 提供的Amazon Simple Email Service (SES)。純IPv6的伺服器是無法與Amazon SES建立連結進而使用這項服務的。

以我自己的理解,DNS64服務可以幫助純IPv6伺服器查詢到純IPv4的位址 (一般DNS無法做到),NAT64則是能在得知這個IPv4位址後,與其建立連結,交換資訊。所以如果需要與只提供IPv4的伺服器建立連結 (例如瀏覽網頁),那這兩者缺一不可。如果想要了解更多信息,可以參考 https://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/nat-gateway-nat64-dns64.html

下面我把我的操作流程分享給大家,我用的是AWS的Ubuntu,所以會以這個舉例,如果你用的是其他服務,可能會有差異,不過重點就是指定你的伺服器使用上面這網站提供的DNS64+NAT64的名稱伺服器。

為了取代ubuntu原本的DNS設定,你要先到 /etc/netplan裡

cd /etc/netplan

我沒有任何檔案在這資料夾中,所以我要新增一個檔案

sudo vi 99-custom-dns.yaml

在檔案中寫入下面的內容:

network:
    version: 2
    ethernets:
        eth0:
            nameservers:
              addresses: [2a01:4f8:c2c:123f::1, 2a00:1098:2c::1]
            dhcp4-overrides:
                    use-dns: false

這裡的eth0是你的網卡代號,如果你只有一張網卡,大概也是eth0,不過請照你的實際情況修改。我這裡只放了兩個名稱伺服器,你想要多放也是可以的。

接下來請執行下面的指令來把這些設定寫入並覆蓋原本的DNS設定。

sudo netplan generate

這時請重啟你的服務器來讓設定生效

sudo reboot

這時可以用下面指令來查看設定是否生效,一樣記得把eth0改成你的網卡的代號

sudo resolvectl status eth0

如果你能找到像下面這樣的描述,就是成功了

Current DNS Server: 2a01:4f8:c2c:123f::1

最後要感謝一下網路上這些願意免費提供服務的好心人!

參考資料:

https://nat64.net

https://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/nat-gateway-nat64-dns64.html

https://repost.aws/knowledge-center/ec2-static-dns-ubuntu-debian

利用免費的Google Cloud來建立私有雲(三)

更新:今天google 寄了一封信給用戶,從明年一月起,固定ip 要開始收費了。每個小時是0.004,這樣算起來就完全不划算了。我晚點會寫一篇教學文,教如何用 no-ip的服務來避免使用固定ip。

這是本系列的最後一篇文章,前面兩篇文章我整理了如何申請免費的Google Cloud伺服器,並用SSH連線進去。還有如何使用Snap來安裝Nextcloud。這篇文章要說的是如何讓自己的Nextcloud利用HTTPS安全連線來保護自己的服務和備份系統。用Snap安裝的Nexcloud要用HTTPS連線設定上非常簡單,只要先輸入下面這行指令確定Nextcloud服務是開啟的:

sudo snap start nextcloud

然後再輸入下面這行:

sudo nextcloud.enable-https lets-encrypt

系統會要求你輸入你的信箱做為日後出問題時的連絡方式,還有你想要設定HTTPS連線的網址。然後,就沒有然後了!這樣就設定完畢!現在你可以試試用https://開頭來連到你自己專屬的雲端硬碟了!

除了連線時的安全,你的資料的安全也很重要,誰都難保每一次系統更新都是順利的,也難保你哪天新血來潮想安裝什麼新軟體或服務,結果把電腦搞掛了。所以定期備份你的系統和資料也是很重要的。這點Google Cloud 也有很好的解決方案。在Computer Engine服務下,有一個快照的選項,裡面你可以建立快照排程,地區請選你的伺服器所在的地區,我建議快照位置選區域就夠了,如果你希望你的伺服器所在地區突然整個掛點的情況,你可以在其他區域馬上恢復你的服務,才選擇多地區,我想以自用來說,區域備份已經夠了。排程頻率要看你對還原的要求有多高,我自己是每天備份,並只留三天的備份。由於Google Cloud 的快照是差異備份,所以如果你的資料變動不大,每次備份的大小其實不會太大。另外要提醒的是,快照只有頭5 GB 是免費的,所以這部份是(幾乎)一定會被收取一些費用的,超過免費額度後每GB是美金0.026。所以如果你追求完全免費,大可以不做任何備份。

希望這系列的文章可以幫到一些人,如果有任何問題也歡迎跟我交流!

利用免費的Google Cloud來建立私有雲(二)

雖然不是必備,不過如果希望自己架設的私有雲可以比較安全,且透過一個網址被訪問,那一個網域名稱就很重要了!我自己是每年花$10美金買了一個網址,因為我有架設eMail server,這個需要許多進階的DNS服務,如果只是要架私有雲,那先找一個免費的網域名稱就可以了!我在電腦王阿達的網站上找到一個免費的選擇,大家可以參考一下,這種免費的通常限制都很多,可是如果只是私有雲的話,應該不會碰到什麼問題。有了網址,就可以將這個網址設定指向之前申請的固定IP,之後Nextcloud 的設定都可以使用你申請的網址。

有了網址以後,接下來就是要安裝Nextcloud了。這裡我建議直接用Nextcloud官方的snap 一鍵安裝。簡單到你的下巴會掉下來。

這個教學是按照這個網頁安裝的,請先修改下面兩個檔案,把電腦的hostname 設定好:

vim /etc/hosts

在這個檔案最前面加一行

123.123.123.123 your.domain.name  

請把數字的部份改成你自己的固定ip,your.domain. name改成你申請的domain name。接下來修改hostname這個檔案:

vim /etc/hostname

在最上面加上你的domain name。

執行下面這個指令來刷新hostname

hostname -F /etc/hostname

做完上面的動作,然後輸入下面三行指令:

sudo apt-get update
sudo apt install snapd
sudo snap install nextcloud

大功告成!現在你可以用你申請的網域名稱從瀏覽器進到你剛架好的Nextcloud 了。到這你可以開始設定你的root帳號,並且開始使用你的個人雲,Nextcloud幾乎在所有平台都有同步軟體,你可以像使用Dropbox一樣的使用它!用snap 安裝Nextcloud還有一個好處,每個服務都是由snap 直接控制,所以如果你要暫停或重新開始Nextcloud的服務,只需要用下面的命令:

sudo snap stop nextcloud #暫停
sudo snap start nextcloud # 開始

如果你想要更新Nextcloud到新的版本,也推薦使用snap 指令

sudo snap refresh nextcloud

但是!目前你架好的這個Nexcloud是用不安全的http連線,我建議要裝上certbot這個免費的https 加密服務來保護你的帳號密碼, 另外你還應該要讓系統每天自動幫你備份整個硬碟,以防你不小心把系統玩壞了,或是主硬碟無預警掛點。我會在下一篇文章教學這個部 份。

利用免費的Google Cloud來建立私有雲(一)

Google Cloud Platform 是與Amazon AWS相似的雲端虛擬伺服器的服務,相較於Amazon AWS是給予第一年免費運行一個小型伺服器(t2.micro: 0.5 vCPU, 1 GiB RAM)與30GB SSD硬碟的試用,Google cloud Platform則提供了一個微型伺服器(0.2 vCPU, 0.6 GiB RAM)與30GB 傳統硬碟永久免費。Google 還額外提供了第一年300美金的試用額度。相比之下Google的免費服務是比Amazon大方的。如果以建立個人私有雲的角度來說,Google的免費服務已經可以滿足大部份人的需要。有鑑於Dropbox限縮了免費使用者只能同步兩台裝置,我想是時候考慮自己弄一個個人雲了!

我最近將我的Nextcloud個人雲從Amazon AWS 轉到了Google Cloud Platform,參考了很多資料,下面我就整理一下,照著做可以少走些岔路。

由於Google Cloud Platform 在很多區域都有服務,所以第一件事情要注意的就是免費的服務只在下面幾個區域有:

  • 奧勒岡州:us-west1
  • 愛荷華州:us-central1
  • 南卡羅來納州:us-east1

你可能會發現所有的免費服務都在美國,所以如果你人在台灣的話,會有比較高的延遲。對於私有雲來說,延遲影響很小,所以關係不大。不過還是選比較靠近亞洲的奧勒岡州吧!詳細的永久免費方案請參考官網,中文的!

架設個人雲的第一步就是開一個新的 f1-micro VM 執行個體 ,並且將如何安全的透過SSH登入這個服務設定完成。請參考下面這些網頁,我照著做沒有碰到問題,記得用滿免費的30GB 空間!:

  1. 如何建立google cloud 服務
  2. 如何建立及登入執行個體

這裡我要提醒一下,由於第一年有免費300美金的試用額度,所以如果真的產生什麼費用,會先從這邊扣,在這一年內你可以觀察一下有沒有什麼服務持續向你收費的(這時只會扣你的免費額度)。我最常見到的狀況是Google Cloud Platform 幫你建立了一個系統的映像檔 ,而這個映像檔通常跟你建立的執行個體用到的硬碟空間一樣大(30GB),所以就一直收費了。建議到 Computer Engine –> 映像檔 找一下有沒有建立者是你自己的映像檔,刪掉就不會再產生費用了。另一個就是建議申請一個固定的IP 位址,這樣每次重開機就不會被強迫換IP了!申請的方法是點一下執行個體的名稱進入執行個體詳細資料頁面,點選你的網路介面的超連結,裡面就可以指定永久固定IP了。另外就是在使用個人雲的時候,流量產生的費用也可能會超過免費額度,不過除非你一天到晚從你的服務器下載東西,不然這個部份產生的費用幾乎可以不計。這篇文章的目的是取代免費的Dropbox,如果你是重度使用者(需要超過25GB使用空間),那我建議你選擇如Google Drive、Dropbox等產品。如果你充份的利用到所有你購買的空間,那這些網路硬碟產品比你自架服務器還便宜!

有了自己的伺服器,可以自己弄很多不同的服務,我自己就架設了eMail、Nextcloud、Wordpress、Full-Text RSS、Kindle-reader 等等。這些服務其實都可以找到免費或付費的替代品,可是有自己專屬的服務感覺還是滿好。這些服務中,eMail是最難搞的,除非你對郵件被Google看光光很不爽,不然不建議自己弄。Nextcloud個人雲是我覺得最值得自己架設的。當然如果你有Google 提供給學校的超大Google Cloud空間,那你就不會像我有動力自架個人雲了!

用Google Cloud搭建免費30GB Nexcloud個人雲

現在google cloud 開放北美(維吉尼亞州除外)最低階VM (f1-micro) 執行個體永久免費,加上30GB傳統硬碟也是永久免費,所以可以使用這個服務來搭建自己的個人雲
頭一年使用還有三百美金的額度供你使用,可以多多測試一下進階的服務。
要注意的是流量(流出才收費)只有頭1GB是免費的,另外如果CPU 負載過高,系統會自動幫你提速,提速的部份也不是免費的。
由於頭一年有300美金,所以可以用第一年來評估這些額外費用是否划算!

具體搭建方法網路上有很多
Google cloud申請很簡單 可以參考下面的網頁http://kuanzi9487.blogspot.com/2017/09/gcpgoogle-cloud-platformserverserver.html

Nextcloud的安裝可以參考下面這個
Install NextCloud On Ubuntu 16.04 LTS With Nginx, MariaDB, PHP 7.1 And Let’s Encrypt SSL/TLS

推廣 letsencrypt

最近在找免費ssl 憑證的時候,發現了下面這篇文章:

NGINX 使用 Let’s Encrypt 免費 SSL 憑證設定 HTTPS 安全加密網頁教學

試用後決定來推廣一下。這個免費憑證是由 Electronic Frontier Foundation這個機構發出的。如果英文還可以的,EFF 的官方網站推薦使用certbot這個程式來自動更新憑證,也可以去這個網站看看,裡面有不同Linux發行版的教學。

而nginx 1.9.5以上版本,有針對http/2(通過SSL)加速,就更顯出ssl 安全連結的優勢了。

如果你的linux發行版還沒有把nginx套件升級到1.9.5以上,可以按照這個教學來升級nginx。

把RSS連結從 wordpress佈景主題中移除

我個人非常喜歡目前的這個wordpress主題 TWENTYTEN (貳零壹零)

不過它的 “其他”選項中有主題RSS 與評論RSS  是我根本用不上的

可是找遍控制台也找不到地方可以移除這兩個選項

所以我就上網搜尋了解決辦法  沒想到英文網站給的答案是:是內建的所以無法移除

找了中文網站終於找到解決辦法

http://www.xuejianzhan.com/365.html

閱讀全文