簡體   English   中英

如何訪問 VMWare Fusion VM 內的 VPN

[英]How can I access a VPN inside a VMWare Fusion VM

我在 MacOS BigSur 中有一個 VPN 連接,但我無法在運行在 VMWare Fusion V12.1.2 下的 Linux VM 中訪問它。

該問題已在 V12.2.0 VMWare Fusion 12.2.0 發行說明中修復

解決方案是手動創建 VPN 隧道並將其鏈接到 VM,因為涉及多個命令並且 IP 地址可以更改我創建了以下腳本來執行所需的命令。

#!/bin/bash

function ask_yes_or_no() {
    read -p "$1 ([y]es or [N]o): "
    case $(echo $REPLY | tr '[A-Z]' '[a-z]') in
        y|yes) echo "yes" ;;
        *)     echo "no" ;;
    esac
}

currNatRules=$(sudo pfctl -a com.apple.internet-sharing/shared_v4 -s nat 2>/dev/null)
if test -z "$currNatRules" 
then
    echo -e "\nThere are currently no NAT rules loaded\n"
    exit 0
fi

utunCheck=$(echo $currNatRules | grep utun)
if test -n "$utunCheck"
then
    echo -e "\nIt looks like the VPN tunnel utun2 has already been created"
    echo -e "\n$currNatRules\n"

    if [[ "no" == $(ask_yes_or_no "Do you want to continue?") ]]
    then
        echo -e "\nExiting\n"
        exit 0
    fi
fi


natCIDR=$(echo $currNatRules | grep en | grep nat | cut -d\  -f 6)
if test -z "$natCIDR" 
then
    echo -e "\nCannot extract the NAT CIDR from:"
    echo -e "\n$currNatRules\n"
    exit 0
fi

interface=$(route get 10/8 | grep interface | cut -d\  -f 4)

echo -e "\nNAT CIDR=$natCIDR Interface=$interface\n"

newRule="nat on ${interface} inet from ${natCIDR} to any -> (${interface}) extfilter ei"

echo -e "\nAdding new rule: $newRule\n"

configFile="fixnat_rules.conf"

[[ -d $configFile ]] && rm $configFile
echo "$currNatRules" > $configFile
echo "$newRule" >> $configFile

sudo pfctl -a com.apple.internet-sharing/shared_v4 -N -f  ${configFile} 2>/dev/null

echo -e "\nConfig update applied\n"

sudo pfctl -a com.apple.internet-sharing/shared_v4 -s nat 2>/dev/null

echo -e "\n"

exit 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM