Board logo

標題: [教學] 申請免費 Domain 及創建 Home WebServer 不需在家 expose port forwarding [打印本頁]

作者: javacomhk    時間: 2022-12-20 10:15     標題: 申請免費 Domain 及創建 Home WebServer 不需在家 expose port forwarding

本帖最後由 javacomhk 於 2023-1-19 02:04 編輯

預告下一篇講 增加 subdomain, nginx fast php server 及 VS Code Server。

申請免費 Domain 及創建Home WebServer 不需在家 expose port forwarding

Step by Step Guide 真正由零開始,最容易的方法(10步就得)去設定免費的自家Home Server 唔使 DDNS 亦唔使 expose home router 的port forwarding.  你只需要安裝免費的 Docker Desktop 及用 browser 去申請及設定 domain name ,dns 及 tunnel.

首先使用 Web Browser 申請免費的服務
(1)申請 免費 domain name
https://freenom.com 申請免費 domain name  (例如 hkhome.tk)
[attach]2353052[/attach][attach]2353053[/attach]
如選擇例如 .tk .ml .ga .cf  ... 等可以選擇免費得到12months free 的 domain name
[attach]2353054[/attach]
如新申請是要 verify email 後便可再 Login 後看見 Active 的 Status。
[attach]2353055[/attach]

如果你要申請一些其他收費的 domain name 亦可以,但一些例如 3domains.net 的 free domain name 由於不能更改 custom DNS 就不可以使用本帖介紹的方法去申請以下cloudflare 的戶口及服務。

(2)開啟新的 Browser Tab 頁面申請免費 cloudflare 戶口
https://cloudflare.com 申請免費戶口,如新申請是要 verify email 後便可再 Login
輸入你剛才申請好的 domain name (例如 hkhome.tk) 然後選擇 Add site ,選擇最下的免費 Free Plan 選項然後click Continue
[attach]2353056[/attach][attach]2353057[/attach]
拉到下面然後 copy cloudflare 的 2 個 nameservers  準備在第(3) 步使用
[attach]2353058[/attach]

(3) 回到 freedom.com 的Bowser 頁面選擇 Manage Domain 及 Management Tools -> Nameservers 及 Use custom nameservers 並輸入 第(2) 步 copy 好的 2個nameservers 最後 click Change Nameservers
[attach]2353059[/attach]
[attach]2353060[/attach]

(4) 等待 10-15分鐘以上(通常要等較長時間去等待更新nameserver registrars)再回到 cloudflare.com 的 Browser頁面 click Done, check nameservers
[attach]2353061[/attach]

選擇 Always Use HTTPS 及 Save 其他都可選擇默認或及後選擇  Finish later
[attach]2353062[/attach]
[attach]2353063[/attach]
click Check nameservers 直至出現 Great news! Cloudflare is now protecting your site, 代表成功。
[attach]2353064[/attach]


此時已成功設立 domain name 及 cloudflare 的 custom DNS,跟著便可以去自家Network設立 cloudflare tunnel 及 Home Server

設立 cloudflare tunnel 目的就係唔想在自己的 home router 去 expose port forwarding,亦唔使設定 dynamic DNS

(5) 回到 cloudflare.com 的Browser頁面左邊的菜單選擇 Zero Trust 及在 Access 內選擇 Tunnels 及 Complete Setup及 設立 Team Name (例如 hkhome)
[attach]2353065[/attach]
[attach]2353066[/attach]
[attach]2353067[/attach]
選擇 Free Plan (只可少於50 users) 及 Process Payment, 雖然選擇 Free Plan 但仍然要輸入 信用卡信息 或 PayPal 都可以
[attach]2353069[/attach][attach]2353070[/attach]

再在 Access 內選擇 Tunnels
Click Create a Tunnel 及輸入自定 Tunnel名稱 例如 hkhometunnel 及 Save tunnel
[attach]2353071[/attach][attach]2353072[/attach]
Choose Your environment 時 選擇 Docker,當然你可以選擇其他 environments,但 Docker 就最容易設立,亦是本帖的示範。
選擇 Docker 後就 copy下面的 code 及 token 以便在自己 Home Server 的 Docker Application 內使用
[attach]2353081[/attach]

(6) 在你的 Home Server 電腦安裝 Docker Host。
Linux,Windows,Mac 都可以,例如安裝 Docker Desktop for Linux(x86_64), Windows(x86_64) 或 Mac(Intel/Apple Silicon) 就最方便及容易,Linux 裝 Docker CE 都可以,不過 Docker Desktop 就比較方便及會跟埋 docker compose 及有其他 multi-platform features 或工具可使用。

安裝好 Docker Host 後在 command prompt 內查看本機IP 地址 (例如是 10.0.1.78),測試及啟動 cloudflare tunnel in background 即是要加 -d option 如下:
  1. docker run -d cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiZmXXXXXXXXXXXXXXX
複製代碼
此Home Server電腦要持續運行 cloudflare tunnel 及以下的 server applications 以確保外界可以連接相關 web 服務。

(7) 跟著回到 cloudflare browser頁面 在剛才新建的 Tunnel 內的 Public Hostname 頁面 tab 內輸入自定義的subdomain name (例如 wordpress)及 domainname (例如 hkhome.tk)
[attach]2353074[/attach]
輸入你的 Home Server的 IP 地址(從第6步得到) 及 輸入自定義的 port number (例如是 8000),如選擇 Service HTTPS 並在下面選擇 No TLS Verify。
[attach]2353075[/attach]

(8) 在你的 Docker server machine 設立 webserver 例如 ngnix 又或例如設立 Wordpress server 方法如下。

參考 https://catalins.tech/how-to-run-wordpress-locally-on-macos-with-docker-compose/
創建 docker-compose.yaml 文件
使用第7步的自定義 port number (例如 8000)去設定 wordpress server
根據以上這篇 在m1 mac 的 docker 下運行就要用 docker desktop for m1 的 multi-platform features 行 x86_64 code 就要加上這句
platform: linux/x86_64
或者根據這篇 https://betterprogramming.pub/my ... m1-mac-e55cbe093d4c 講用 mariadb 10.3 或 biarms/mysql:5.7 for arm64
  1. version: "3.9"
  2. services:
  3.   db:
  4.     image: mysql:5.7
  5.     volumes:
  6.       - db_data:/var/lib/mysql
  7.     restart: always
  8.     environment:
  9.       MYSQL_ROOT_PASSWORD: pass1
  10.       MYSQL_DATABASE: wordpress_local
  11.       MYSQL_USER: wordpress_db_user
  12.       MYSQL_PASSWORD: pass2

  13.   wordpress:
  14.     depends_on:
  15.       - db
  16.     image: wordpress:latest
  17.     volumes:
  18.       - wordpress_data:/var/www/html
  19.     ports:
  20.       - "8000:80"
  21.     restart: always
  22.     environment:
  23.       WORDPRESS_DB_HOST: db
  24.       WORDPRESS_DB_USER: wordpress_db_user
  25.       WORDPRESS_DB_PASSWORD: pass2
  26.       WORDPRESS_DB_NAME: wordpress_local
  27. volumes:
  28.   db_data: {}
  29.   wordpress_data: {}
複製代碼
#  啟動 wordpress server
docker-compose up -d



(9) 在手機外網測試你設定好的的 Web Server 例如輸入
https://wordpress.hkhome.tk

(10) 如要增加其他 subdomain 及 webserver / web service只要選擇輸入不同的 subdomain, Server IP 地址或 port number 及只要重覆 第 (7) 至 (9) 步去設定及測試便可。

預告下一篇講 增加 subdomain, nginx fast php server 及 VS Code Server。
作者: 0kcal    時間: 2022-12-20 12:59

申請免費 Domain 及創建Home WebServer 不需在家 expose port forwarding

Step by Step Guide 真正由零開 ...
javacomhk 發表於 2022-12-20 10:15



    cloudflare tunnel 送BANDWIDTH 咁豪...
作者: hkechung    時間: 2022-12-21 00:21

docker can use synology ?
作者: javacomhk    時間: 2022-12-21 08:58

docker can use synology ?
hkechung 發表於 2022-12-20 16:21



    I don't have synology, but I think synology doesn't have this cloudflare tunnel package in the distro.
作者: toylet    時間: 2022-12-21 17:07

提示: 作者被禁止或刪除 內容自動屏蔽
作者: hkechung    時間: 2022-12-21 17:18

回覆 3# hkechung

Just test it with Synology.
It work fine. :)  Thanks
作者: toylet    時間: 2022-12-21 17:26     標題: 雖然選擇 Free Plan 但仍然要輸入 信用卡信息 或 PayPal

提示: 作者被禁止或刪除 內容自動屏蔽
作者: javacomhk    時間: 2022-12-21 20:05

同 技術 無關: 這一步 小人 覺得 有 啲 危險... 即是 佢 可以 扣咗錢 才 講數?
正常 免費的 應 不須 填 任 ...
toylet 發表於 2022-12-21 09:26



    你可以用 paypal link to debit card
作者: toylet    時間: 2022-12-21 23:02

提示: 作者被禁止或刪除 內容自動屏蔽
作者: javacomhk    時間: 2022-12-21 23:57

Cloudfare 都是 可以 先 扣錢?
佢 想 實名 不是 問題, 不過 以 付款方法 做 就... Well... ...
toylet 發表於 2022-12-21 15:02



    debit card 內有幾多錢,你可以控制架嘛。debit card balance 唔會扣到負數架!
作者: nomiss    時間: 2022-12-22 07:05

琴日剛剛開, 完全冇叫加卡就直接開通咗用得, 唔知係咪改咗
作者: kirafung    時間: 2022-12-22 09:16

多謝分享, 咁樣睇落, 好似可以做到D point 經過cloudflare site to site vpn ?
作者: javacomhk    時間: 2022-12-22 12:02

本帖最後由 javacomhk 於 2022-12-23 08:28 編輯

同 VPN 唔同,VPN 個 gateway setup 好後,所有 internal 機都 access 到,Cloudflare tunnel 要逐個server setup 或者要另外裝個 server 去做 middleware。Cloudflare tunnel 比公眾人仕用 適合 web server 這類的 Applications, VPN 比自己友用 Internal LAN 的 Resources,multicast ports 都用到.

黎緊會出第二篇講點樣用 cloudflare tunnel 設定 Nginx + fast PHP server ,大家留意續集…。
作者: javacomhk    時間: 2022-12-22 12:49

琴日剛剛開, 完全冇叫加卡就直接開通咗用得, 唔知係咪改咗
nomiss 發表於 2022-12-21 23:05



    Cloudfare account 係免費唔使 payment account,但跟住開 zero trust tunnel 就要入信用卡或 PayPal。
作者: toylet    時間: 2022-12-22 14:01

提示: 作者被禁止或刪除 內容自動屏蔽
作者: nomiss    時間: 2022-12-22 20:40

Cloudfare account 係免費唔使 payment account,但跟住開 zero trust tunnel 就要入信用卡或 PayPa ...
javacomhk 發表於 2022-12-22 12:49



    我當然知,我就係講緊zero trust tunnel冇問過要payment揀完free plan就用到
作者: fakeman    時間: 2022-12-22 21:13

cloudflare tunnel 送BANDWIDTH 咁豪...
0kcal 發表於 2022-12-20 12:59



    但不可以 streaming....唔好諗住可以開 streaming server
作者: javacomhk    時間: 2022-12-23 02:50

我當然知,我就係講緊zero trust tunnel冇問過要payment揀完free plan就用到
nomiss 發表於 2022-12-22 12:40



    咁可能你係舊戶口,曾經比過payment 資料。
作者: nomiss    時間: 2022-12-23 03:58

咁可能你係舊戶口,曾經比過payment 資料。
javacomhk 發表於 2022-12-23 02:50



    絕對冇加過卡,payment method入面都冇嘢,所以唔知係咪改咗定係唔同account唔同處理
作者: hkechung    時間: 2022-12-31 16:09

回覆 11# nomiss


    Yes, no credit card need now
作者: takayo72    時間: 2022-12-31 17:42

提示: 作者被禁止或刪除 內容自動屏蔽
作者: takayo72    時間: 2022-12-31 17:45

提示: 作者被禁止或刪除 內容自動屏蔽
作者: takayo72    時間: 2022-12-31 19:05

提示: 作者被禁止或刪除 內容自動屏蔽
作者: takayo72    時間: 2022-12-31 20:08

提示: 作者被禁止或刪除 內容自動屏蔽
作者: javacomhk    時間: 2023-1-1 11:58

師兄個WordPress web 係唔另一個docker container?

via HKEPC IR Pro 3.5.2 - Android(3.2.0)
takayo72 發表於 2022-12-31 12:08



    要另一個

即係個domain 12個月之後要收錢?
要收錢,或者換個
作者: nomiss    時間: 2023-1-1 17:45

freenom係domain name到期前14日內就可以免費續,但係一定要自己另外set提醒,唔好靠佢個email,試過中伏唔send email過咗期先知重新申請就變咗收費
作者: takayo72    時間: 2023-1-1 18:16

提示: 作者被禁止或刪除 內容自動屏蔽
作者: hkechung    時間: 2023-1-5 11:46

回覆 22# takayo72


    yes
作者: hoktong    時間: 2023-1-16 22:20

請問一下我用 cloudflare tunnel 入 NAS, 咁我 point 去 5001 係入到, 但有無方法可以一個 domain 可以配唔同 port, e.g. abc.com:443>localhost:5001; abc.com:13579>localhost:853? 唔駛用 subdomain?

Thanks
作者: javacomhk    時間: 2023-1-17 07:36

本帖最後由 javacomhk 於 2023-1-16 23:54 編輯
請問一下我用 cloudflare tunnel 入 NAS, 咁我 point 去 5001 係入到, 但有無方法可以一個 domain 可以配唔 ...
hoktong 發表於 2023-1-16 14:20



    你想放自己個NAS 出街用就應該係用 tailscale
https://tailscale.com/kb/1131/synology/

Cloudflare tunnel 唔係真係VPN 服務
作者: hoktong    時間: 2023-1-17 08:12

回覆 30# javacomhk


    本身用緊 tailscale, 因為唔可以就咁俾人 download file 以為 CF tunnel 可以做到
作者: javacomhk    時間: 2023-1-17 11:08

回覆  javacomhk


    本身用緊 tailscale, 因為唔可以就咁俾人 download file 以為 CF tunnel 可以做到 ...
hoktong 發表於 2023-1-17 00:12


咁你應該起個 webserver 跟住做埋 authentication 或 login 比人 download file.
作者: takayo72    時間: 2023-1-19 08:03

提示: 作者被禁止或刪除 內容自動屏蔽





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2