用Linux搭建VPN

一、OpenVPN 介紹

OpenVPN 為一款跨平台的開源 VPN 軟體,支持 TCP/UDP 以及 SSL/TLS 兩種 VPN 連接方式,能夠在包括 Linux、Windows、MacOS、iOS、Android 等多種平台上運行。相比於其他 VPN 軟體,OpenVPN 有更高的安全性和更強的自定義能力。

OpenVPN 的核心軟體包包括 openvpn 和 easyrsa,前者是 OpenVPN 的主體程序,後者則是用於生成數字證書和密鑰的工具。本文中將使用 OpenVPN 來搭建 VPN 網路。

二、安裝 OpenVPN

在 Linux 中安裝 OpenVPN 的方法與一般的軟體安裝相似,具體步驟如下:

sudo apt-get update
sudo apt-get install openvpn easy-rsa

安裝完成後,即可開始配置 VPN 網路。

三、生成數字證書和密鑰

在使用 OpenVPN 搭建 VPN 網路時,為了保證連接的安全性,需要將客戶端和伺服器端之間的數據加密。為此,需要使用 easyrsa 生成數字證書和密鑰。

在 OpenVPN 安裝包中,可以找到一個 easy-rsa 的目錄,該目錄中包含了一些 shell 腳本和配置文件,可以使用這些工具來生成數字證書和密鑰。下面是生成數字證書和密鑰的步驟:

cd /usr/share/easy-rsa/3
./easyrsa init-pki
./easyrsa build-ca

其中,第一條命令用於進入 easy-rsa 目錄,第二條命令用於初始化 PKI,第三條命令用於創建一個 CA(Certificate Authority)證書。

接下來,還需使用以下命令生成伺服器端的證書和密鑰:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

該命令將生成一個帶有伺服器信息的證書請求,並使用 CA 證書進行簽署,生成伺服器的數字證書和密鑰。

同樣的,在生成客戶端的證書和密鑰時,也需要執行類似的命令:

./easyrsa gen-req client nopass
./easyrsa sign-req client client

生成的證書和密鑰將保存在 easy-rsa/3/pki 目錄下。

四、配置 OpenVPN 伺服器

在配置 OpenVPN 實現 VPN 網路之前,需創建一個配置文件。在 Ubuntu 中,可以使用以下命令創建配置文件:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

此時,/etc/openvpn 目錄下會出現一個 server.conf 的文件,這是 OpenVPN 的伺服器配置文件,可以按需要進行修改。

下面是一個簡單的 OpenVPN 伺服器配置文件示例,其中使用了之前生成的伺服器證書和密鑰(位於 easy-rsa/3/pki 目錄下):

port 1194
proto udp
dev tun
ca /usr/share/easy-rsa/3/pki/ca.crt
cert /usr/share/easy-rsa/3/pki/issued/server.crt
key /usr/share/easy-rsa/3/pki/private/server.key
dh none
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1

將以上內容保存為 /etc/openvpn/server.conf 文件,並啟動 OpenVPN 服務:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

啟動成功後,可通過以下命令查看日誌信息,以確保 OpenVPN 已按照配置文件啟動:

sudo journalctl -u openvpn@server

五、配置 VPN 客戶端

在配置 VPN 客戶端時,需要將之前生成的證書和密鑰拷貝到客戶端機器上,並創建一個客戶端配置文件。

以下是一個簡單的 OpenVPN 客戶端配置文件示例:

client
remote vpn.example.com 1194
proto udp
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3

將以上內容保存為客戶端配置文件(例如 /etc/openvpn/client.conf),並啟動 OpenVPN 服務:

sudo systemctl start openvpn@client
sudo systemctl enable openvpn@client

啟動成功後,可通過以下命令查看日誌信息:

sudo journalctl -u openvpn@client

六、結論

通過以上步驟,我們已成功搭建了 OpenVPN 伺服器和客戶端,並實現了 VPN 網路的搭建。當然,OpenVPN 的配置還有很多細節和技巧,可以根據需要進行更深入的配置和優化。

原創文章,作者:ZTMQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/148083.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZTMQ的頭像ZTMQ
上一篇 2024-11-02 13:15
下一篇 2024-11-02 13:15

相關推薦

  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27
  • 在Linux上安裝JRE並配置環境變數

    本文將從以下幾個方面為您詳細闡述如何在Linux系統上,通過自己賬戶安裝JRE,並且配置環境變數。 一、安裝JRE 在進行安裝前,我們需要下載JRE的安裝包並解壓,可以從官方網站下…

    編程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用於Linux操作系統的一款照片管理器,它支持多種相機及存儲設備,並提供了一系列強大的工具,讓用戶可以方便地瀏覽、管理、編輯和導出照片。本文將從多個方面對GTKAM進行…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Linux網路連接激活失敗原因及解決方法

    一、網卡驅動問題 1、缺少網卡驅動 若使用新的網卡,需要安裝對應網卡驅動,否則會導致網路連接激活失敗。可通過以下命令查看當前系統中是否存在網卡驅動: lsmod | grep et…

    編程 2025-04-25
  • 如何在Windows/Linux/MacOS下安裝Python

    如果你對Python安裝一無所知,本文將從多個方面對Python在Windows/Linux/MacOS下的安裝做出詳細闡述,為初學者提供幫助。 一、Windows下Python的…

    編程 2025-04-25
  • Linux Redis 重啟

    一、概述 Redis 是一款高性能的 NoSQL 資料庫,常用於各種應用場景的數據緩存、消息隊列、實時數據分析等等。在使用 Redis 過程中,如果出現了某些問題,有時候只需要重啟…

    編程 2025-04-25
  • Linux防火牆配置詳解

    一、iptables基本介紹 iptables是一個重要的Linux內核中網路安全系統,通過設置iptables規則,可以對進入和離開Linux伺服器的數據進行過濾。 iptabl…

    編程 2025-04-25

發表回復

登錄後才能評論