Mac 上瀏覽網站如果要跳板或代理我都是用這招 [Mac] 使用 VPS 當 SOCKS 網頁代理伺服器。但手機沒想到比較好的方式,網路上一堆免費的好可怕XD

所以乾脆找資料自己架設一個 VPN 來使用。想要快一點又乾淨的架設大概非 Docker 莫屬。

幾個步驟如下:

  1. 選好想開的地區的 VPS 主機(現在各大地區的主機都能在網路上找到彈性收費的方法,AWS, GCP, Ali...)
  2. 設定開設主機 Ubuntu(我慣用而已),設定好連線方式
  3. 開機,確認配置的 IP(記下來),SSH 遠端連線進去開始下方的安置。

本篇使用 kylemanna/docker-openvpn 專案。

快速安裝 Docker 相關

以下皆使用 root 角色進行。

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

安裝 docker-compose 來參照這篇 安裝 OpenVPN 方式進行

curl -L "https://github.com/docker/compose/releases/download/$(curl -sL https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

使用 docker-compose 安裝 OpenVPN Server

mkdir /root/open_vpn && cd /root/open_vpn

把下面的範本寫入 docker-compose.yml 檔案

version: '2'
services:
  openvpn:
    cap_add:
     - NET_ADMIN
    image: kylemanna/openvpn
    container_name: openvpn
    ports:
     - "1194:1194/udp"
    restart: always
    volumes:
     - ./openvpn-data/conf:/etc/openvpn

這邊的意思就是引用 kylemanna/openvpn 專案,然後開服務在 1194 Port 號,要改端口號是在這邊改。要記得 VPS 是否有設定防火牆擋住不給外連哦!(換 Port 號不然就是開防火牆)

docker-compose run --rm openvpn ovpn_genconfig -u udp://openvpn.mxp.tw

openvpn.mxp.tw 請自行取代成自己的網域,然後記得把這網域設定指向這台 VPS 的 IP

docker-compose run --rm openvpn ovpn_initpki

Enter New CA Key Passphrase: XXXXXX。輸入一組 6 個字元以上的密碼。
Common Name (eg: your user, host, or server name) [Easy-RSA CA]: 輸入 openvpn.mxp.tw (記得自己改成自己的)
Enter pass phrase for /etc/openvpn/pki/private/ca.key:一樣輸入一組 6 個字元以上的密碼。

docker-compose up -d openvpn

啟動 OpenVPN Server

製作用戶端連線描述檔案

export CLIENTNAME="mxp"

設定等等輸出的用戶端資訊,建立一組需要密碼的用戶端

docker-compose run --rm openvpn easyrsa build-client-full "$CLIENTNAME"

Enter PEM pass phrase: 提示輸入 6 字元以上密碼
Verifying - Enter PEM pass phrase:重複一次確認
Enter pass phrase for /etc/openvpn/pki/private/ca.key: 輸入上面輸入過的 6 字元以上密碼

  • 特別注意,如果這邊輸入錯誤的驗證密碼,這組就會失效,請用別的名字 CLIENTNAME 再試一次!
docker-compose run --rm openvpn ovpn_getclient "$CLIENTNAME" > "$CLIENTNAME.ovpn"

把 OpenVPN 連線的檔案抽取出來,這檔案就可以用來連線囉!

  • 由於他這產生的憑證有效期是三年(會看到提示),要簽過就是跑上述流程,而廢止需要參考下方指令。
docker-compose run --rm openvpn ovpn_revokeclient "$CLIENTNAME"

到這步取出來的 "$CLIENTNAME.ovpn" 就可以放到手機裡讀取連線,連線時會問你上面 PEM pass phrase 的密碼,驗證後就開始跳板上網啦!

iPhone OpenVPN

後記

現在伺服器想用就開,用多少算多少,除非是開到一個 IP 已經被玩爛的要換過外,不然真是懂得用的人可以避開很多風險。像是到處上網找免費的還是上網買一些不知道有沒有問題的服務,都可能導致自己裝置上帳號密碼相關個資洩漏,實在要小心。

標題的五分鐘真是不誇張,沒幾行指令,只要熟悉 Linux 的操作還有遠端連線作業的環境,照打照輸入很快搞定~

  • 記得,用完 VPN 後要砍掉主機才不會被多扣錢


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

參與討論

2 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *