一,安装 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 '连接完成'