一,安装 SoftEther客户端配置

1,下载softether客户端

官网:http://www.softether-download.com/

选择对应的版本,然后获取链接

cd到你想安装的位置 如cd /www 然后 wget https://…./xxx.tar.gz(你获取的下载链接) 下载客户端

2,解压SoftEther 客户端

tar xzfv xxx.tar.gz

xxx.tar.gz为文件名

3,安装

cd vpnclient

make

如果有报错安装一下开发工具

yum groupinstall "Development Tools"

二,配置SoftEther客户端配置

1,运行SoftEther客户端

./vpnclient start

2,检查客户端

./vpncmd

选择3

check

如果全部通过证明没有问题, 如果有没有通过的照提示解决

按ctrl + c 退出

3,创建虚拟网卡

./vpncmd

选择2

NicCreate vpn_nic

4,创建虚拟hub和vpn账号

AccountCreate depyouvpn

然后输入vpn服务器ip和端口 x.x.x.x:x

然后输入虚拟hub名称,如:VPN(softether服务端配置的Hub)

然后输入你的vpn账号

然后输入虚拟网卡名称,就是上面创建的vpn_nic

5,设置密码

accountpassword depyouvpn

输入两遍密码。

然后 Specify standard or radius: 输入 radius

6,连接

accountConnect depyouvpn

然后查看是否连接成功

accountlist

如果连接成功 Status 为 Connected 不是 Connecting

然后退出SoftEther配置 ctrl + c

三,设置路由

1,检查系统是否启用了 IP 转发:

cat /proc/sys/net/ipv4/ip_forward

如果是0运行下面的代码 如果是1不需要运行

echo 1 > /proc/sys/net/ipv4/ip_forward

或者编辑/etc/sysctl.conf文件使其永久启用IP转化

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf && sysctl -p

2,从VPN服务器获取IP地址:

ifconfig

你会看到你创建的虚拟网卡 “vpn_vpn_nic” 在vpncmd中创建的虚拟网卡会自动加vpn_的前缀

获取ip地址: dhclient vpn_vpn_nic

如果报错 dhclient(26692) is already running – exiting.

就先kill掉原先的进程,查看进程id

ps -aux|grep dhclient

kill -9 xxxx (xxxx为ps查出来的id)

再次获取 dhclient vpn_vpn_nic

再次查看

ifconfig

3,编辑路由表

查看当前路由表

netstat -rn

你的应该类似于

添加默认路网关到 VPN 服务器 IP 地址的路由。在我的具体情况下:

ip route add x.x.x.x/32 via 192.168.200.1 (其中的x.x.x.x换成你的VPN服务器IP)

再次查看路由表

netstat -rn

获取一下公网ip

wget -qO- http://ipecho.net/plain ; echo

是否输出你的VPN服务器IP?

如果不通就删除默认路径再试一下

ip route del default via 192.168.200.1

wget -qO- http://ipecho.net/plain ; echo

写了个连接sh脚本,有需要的可以拿去用。

创建一个sh文件把下面的内容复制到里面,然后运行就行了。(注意文件编码必须是utf8不然会报错

vpnclientDir=/www/vpnclient/ #vpnclient目录
vpnName='depyouvpn'
vpnIp='x.x.x.x'
vpnPort='443'
nicName='vpn_vpn_nic'


localIp=`ip route show|grep "default"|grep -v $nicName|cut -d " " -f 3`
defaultNicName=`ifconfig | cut -d ':' -f 1|sed -n '1p'`


# ip route add default via $localIp dev $defaultNicName proto static metric 100
cd $vpnclientDir
./vpnclient start
./vpncmd localhost /client /CMD accountconnect $vpnName > $?
if [ $? == 35 ];then
    echo '已有帐号连接'
    connectedLine=`./vpncmd localhost /client /CMD accountlist|cut -d "|" -f 2 |grep -nx "Connected"|cut -d ":" -f 1`
    ((connectedNameLine=$connectedLine-1))
    connectedName=`./vpncmd localhost /client /CMD accountlist|cut -d "|" -f 2 | sed -n $connectedNameLine'p'`
    echo '连接名称:'$connectedName
    echo -e '\n'
    ./vpncmd localhost /client /CMD accountdisconnect $connectedName
    echo -e '\n'
    echo '关闭连接'$connectedName'完成'
    echo '开始重新连接'$vpnName
    echo -e '\n'
    ./vpncmd localhost /client /CMD accountconnect $vpnName
    echo -e '\n'
    echo '重新连接'$vpnName'完成'
else
    echo '连接'$vpnName'完成'
fi

echo '开始配置路由'
dhclientId=`ps -A|grep dhclient|cut -d ' ' -f 2`
if [ $dhclientId ];then
    echo '存在dhclient连接,开始结束dhclient连接ID:'$dhclientId
    kill -9 $dhclientId
    echo '结束dhclient连接完成'
fi
echo '开始dhclient连接'
dhclient $nicName
echo -e 'dhclient连接完成\n查看网卡是否有ip地址'
ifconfig
echo '查看路由表'
netstat -rn
existRoute=`ip route show|grep $vpnIp`
if [ "$existRoute" ]; then
    echo '路由已存在'
    # ip route del default via $localIp
else
    ip route add $vpnIp'/32' via $localIp
    # ip route del default via $localIp
fi
echo '连接完成'

除非注明, askADC博客 的文章均为原创,转载请注明作者和出处。
本文链接地址: http://blog.askadc.com/linux-%e8%bf%9e%e6%8e%a5softether%e5%ae%a2%e6%88%b7%e7%ab%af%e9%85%8d%e7%bd%ae/

发表评论

邮箱地址不会被公开。 必填项已用*标注