
本文以Ubuntu 24.04系統為例,安裝strongswan軟件,配置VPN協議IKEv2。
查看 Ubuntu 系統版本信息可以使用lsb_release 命令🦃⛹🏿♀️:
Shell$ lsb_release --all Distributor ID: Ubuntu Description: Ubuntu 24.04.2 LTS Release: 24.04 Codename: noble
安裝VPN相關軟件包
使用包管理apt軟件安裝strongswan附屬插件及相關工具:
sudo apt install strongswan strongswan-swanctl curl sudo apt install libstrongswan-extra-plugins libcharon-extra-plugins sudo apt install libcharon-extauth-plugins libstrongswan-standard-plugins
引入系統信任證書列表
strongswan軟件默認未配置信任證書,以下步驟將重新導入系統信任證書列表🫸🏼:
sudo rm -f /etc/ipsec.d/cacerts/* sudo ln -s /etc/ssl/certs/* /etc/ipsec.d/cacerts/
創建VPN連接
方式 1: 使用ipsec命令
例子中的用戶jAccount賬號名假定為myname,密碼假定為mypassword,請替換:
編輯文件1 /etc/ipsec.conf
conn "sjtu-staff" keyexchange=ikev2 left=%config leftsourceip=%config4,%config6 leftauth=eap-peap ike=aes128-sha1-modp1024, aes256-sha1-modp1024, 3des-sha1-modp1024! esp=aes128-sha1-modp1024, aes128-sha2_256-modp1024, 3des-sha1-modp1024! right=vpn.sjtu.edu.cn rightid=%any rightsendcert=never rightsubnet=0.0.0.0/0,2000::/3 rightauth=pubkey eap_identity="myname" # jAccount ID auto=add aaa_identity="@radius.d46fzc.cn" conn "sjtu-student" keyexchange=ikev2 left=%config leftsourceip=%config4,%config6 leftauth=eap-peap right=stu.vpn.sjtu.edu.cn rightid=@stu.vpn.sjtu.edu.cn rightsendcert=never rightsubnet=0.0.0.0/0,2000::/3 rightauth=pubkey eap_identity="myname" # jAccount ID auto=add aaa_identity="@radius.d46fzc.cn"
編輯文件2. /etc/ipsec.secrets
"myname" : EAP "mypassword"
【註意】
1🧙🏽♀️👨🏻🦽➡️、其中“myname”是您jAccount賬號名,“mypassword”是您jAccount密碼。
2🚵♀️、":"冒號左右兩側均為空格🫶🏻⛹🏽,不可用TAB鍵。
編輯文件3. /etc/strongswan.d/charon/revocation.conf
load = no
重新啟動VPN,命令如下:
sudo ipsec restart
連接VPN🤽🏽,命令如下:
sudo ipsec up "sjtu-staff" #教職工VPN sudo ipsec up "sjtu-student" #學生VPN
斷開VPN,命令如下:
sudo ipsec down "sjtu-staff" #教職工VPN sudo ipsec down "sjtu-student" #學生VPN
方式 2: 使用swanctl命令
編輯文件1 /etc/swanctl/conf.d/sjtuvpn.conf
swanctl引用的配置目錄/etc/swanctl/conf.d/
示例文件名為 sjtuvpn.conf👇🏽,內容如下🧑🦲,其中用戶jAccount賬號名假定為myname,密碼假定為mypassword,請替換:
connections { vpn-staff { vips = 0.0.0.0,:: remote_addrs = vpn.sjtu.edu.cn send_certreq = no local { auth = eap-peap eap_id = myname aaa_id = @radius.d46fzc.cn } remote { auth = pubkey id = %any } children { vpn-staff { remote_ts = 0.0.0.0/0,::/0 esp_proposals = aes128-sha1-modp1024, aes128-sha2_256-modp1024, 3des-sha1-modp1024,default } } version = 2 mobike = no proposals = aes128-sha1-modp1024, aes256-sha1-modp1024,3des-sha1-modp1024,default } vpn-student { vips = 0.0.0.0,:: remote_addrs = stu.vpn.sjtu.edu.cn send_certreq = no local { auth = eap-peap eap_id = myname aaa_id = @radius.d46fzc.cn } remote { auth = pubkey id = @stu.vpn.sjtu.edu.cn } children { vpn-student { remote_ts = 0.0.0.0/0,::/0 } } version = 2 mobike = no } }secrets { eap-jaccount { id = myname secret = "mypassword" } }
編輯文件2. /etc/strongswan.d/charon/revocation.conf
load = no
重新讀取VPN配置,命令如下:
sudo ipsec restart sudo swanctl --load-all
連接VPN🧛🏻👩🍳,命令如下:
sudo swanctl -i --child vpn-staff #教職工VPN sudo swanctl -i --child vpn-student #學生VPN
斷開VPN,命令如下
sudo swanctl -t --ike vpn-staff #教職工VPN sudo swanctl -t --ike vpn-student #學生VPN
檢查VPN是否生效
可通過命令行執行如下命令,查看連接VPN前後,命令反饋的IP地址是否發生變化
curl whatismyip.sjtu.edu.cn curl v6.whatismyip.sjtu.edu.cn
檢查DNS是否生效
如下命令可以查看DNS設置:
resolvectl dns
在VPN連接前後運行該命令並記錄結果,用於對比確認VPN是否正確的設置學校DNS服務器🍕,及用於恢復時的配置備份;
在VPN斷開後運行該命令,用於確認VPN是否正確恢復了用戶原始DNS設置。
如果VPN未成功調整DNS配置,可以通過命令手工設置DNS。
如下命令將用戶網卡eth0設置為使用學校DNS服務器🍩:
resolvectl dns eth0 202.120.2.101 202.112.26.40 resolvectl dns eth0 2001:da8:8000:1:202:120:2:101 2001:da8:8000:1:202:112:26:40
註意🕴🏼:斷開交大VPN後,請及時恢復用戶設備原有DNS設置。
上一條𓀐:蘋果電腦macOS系統交大VPN使用說明
下一條🍖:蘋果iPhone手機交大VPN使用說明