---
# System prepended metadata

title: 在 Linux 系統安裝 Openconnect
tags: [Linux/Unix, 工具安裝與部署, Openconnect, 資訊科技 › 開發與輔助工具, VPN]

---

---
title: 在 Linux 系統安裝 Openconnect
date: 2020-08-10 
is_modified: false
disqus: cynthiahackmd
categories:
- "資訊科技 › 開發與輔助工具"
tags:
- "VPN"
- "Openconnect"
- "Linux/Unix"
- "工具安裝與部署"
---

{%hackmd @CynthiaChuang/Github-Page-Theme %}

<br>

從草稿夾清出了草稿，拖了有點久，都去年的事情了 XD
  
起因是這樣的，去年去支援了 UI team 的工作，需要用到 postman 做些 API 資料的測試，順便接回前端。但這個案子的開發環境有點麻煩，我又是在外點工作，所以會用到好幾個不同的 VPN 連到不同環境。而這次的 API 又需要用另外一個 VPN 連到其他地方去...真是有夠麻煩的 :broken_heart: 
  
厄...我先承認，我全部丟給我搭檔去處理 VPN 的部份，我先去前端刻 UI 了，所以細節處記錄的不是很清楚 XD

<!--more-->
<p class="illustration">
    <img src="https://i.imgur.com/GcpptAh.jpg?1" alt="VPN">
    VPN（圖片來源: <a href="https://www.pexels.com/zh-tw/photo/nordvpn-vpn-vpn-2063636/">Gem Fortune - pexels</a>）
</p>



## VPN 踩坑流程
在安裝 Openconnect 之前，搭檔還先嘗試了好幾套 VPN 軟體，不過都悲劇了。


### GlobalProtect
第一個是台北同仁給的則是  **GlobalProtect**，還很好心的給了安裝文件，可以手把手教你連上需要的機台，但依舊悲劇的是 - ==沒有 Linux==。...奇怪了，台北同仁都不用 Linux 嗎？

我搭檔只好開始啃 [GlobalProtect Linux 的安裝文檔](https://docs.paloaltonetworks.com/globalprotect/4-1/globalprotect-app-user-guide/globalprotect-app-for-linux.html)，只是他裝好後，試圖進行連接，
 
```bash=
$ globalprotect 
                                                                       
>> connect --portal IP
Retrieving configuration...  
```

但一直處在 Retrieving configuration...，即使整個完整卸除安裝後，再重新安裝，還是一樣問題，他只好改試用 SoftEther VPN 試試。


### SoftEther
他們說要來試試看，在 [Linux 上的安裝](https://linuxconfig.org/setting-up-softether-vpn-server-on-ubuntu-16-04-xenial-xerus-linux)，沒有看到他們說成功的消息，反而開始討論起其他的，應該是失敗了？


### network-manager-l2tp
後來看到他們在嘗試使用 l2tp，參考了這兩個連結：
- [Setup L2TP over IPsec VPN client on Ubuntu 18.04 using GNOME](https://20notes.net/linux/setup-l2tp-over-ipsec-client-on-ubuntu-18-04-using-gnome/)
- [Configure IPsec/L2TP VPN Clients：Linux](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#linux)

搭檔回報 failed，有一個 Enter `Your VPN IPsec PSK` for the **Pre-shared key**，看起來是必要欄位，但他沒法填。



## Openconnect
後來搭檔參考了，[這篇](https://askubuntu.com/questions/686186/how-to-connect-my-ubuntu-to-my-workplace-globalprotect-vpn-using-win-7-vm)使用 IPsec/ESP modes 來連 GlobalProtect，看來是成功了。

總結一下安裝步驟：

1. **安裝 CA**
    ```bash=
    $ sudo cp ca.crt /usr/local/share/ca-certificates
    $ sudo update-ca-certificates
    ```

2. **安裝 openconnect**
    ```bash=
    $ sudo apt-get install \
        build-essential gettext autoconf automake libproxy-dev \
        libxml2-dev libtool vpnc-scripts pkg-config \
        libgnutls-dev
    $ git clone https://github.com/dlenski/openconnect.git
    $ cd openconnect
    $ ./autogen.sh
    $ ./configure
    $ make
    $ sudo make install && sudo ldconfig
    ```

    or

    ```bash=
    $ sudo apt-get update
    $ sudo apt-get install openconnect
    ```

3. **連線到目標 VPN**
    ```bash=
    $ sudo ./openconnect --protocol=gp IP
    ```



## 後記
說實話，我從頭到尾搞不清楚他們搞什麼 XDDD

不過按照他們總結給我的流程進行安裝，可以順利從 postman 要到資料了。剛好前端刻的差不多了，可以直接接下去繼續串資料流程了 XD



## 更新紀錄
:::spoiler 最後更新日期：2020-08-10 
- 2020-08-10 發布
- 2020-06-04 完稿
- 2019-09-24 起稿
:::


<br><br> 

> **本文作者**： 辛西亞．Cynthia  
> **本文連結**： [辛西亞的技能樹](https://cynthiachuang.github.io/Installing-Openconnect-on-Linux) / [hackmd 版本](https://hackmd.io/@CynthiaChuang/Installing-Openconnect-on-Linux)   
> **版權聲明**： 部落格中所有文章，均採用 [姓名標示-非商業性-相同方式分享 4.0 國際](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en) (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處！

