簡易 VPN: socat & openssh

2011年10月8日 | 分类: 翻墙相关 | 标签: , , ,

為了要建一個 L2 VPN tunnel, 想利用到 Linux 的 tap device, 所以想找合適的 TUN/TAP based 的 tunnel 程式, 首先測試了最簡單的 socat

Server 端:

#!/bin/sh
OPT=iff-up,iff-promisc,iff-no-pi,tun-type=tap,tun-name=tap0
socat -d -d TCP-LISTEN:11443,reuseaddr,fork TUN:192.168.32.1/24,up,$OPT

Client 端:

#!/bin/sh
OPT=iff-up,iff-promisc,iff-no-pi,tun-type=tap,tun-name=tap0
socat -d -d TCP:vpn-server:11443 TUN:192.168.32.2/24,up,$OPT

或者用 openssh 加密

 socat -d -d  \
    TUN:192.168.32.2/24,up,tun-type=tap \
    SYSTEM:"ssh root@vpn-server socat -d -d  - 'TUN:192.168.32.1/24,up,tun-type=tap'"

 

直接使用 openssh

1. 要將 server 端的 sshd_config 的 PermitTunnel yes

2. 然後先把 tap0 跟 key  建好:

tunctl

3. client 端

ssh -o Tunnel=ethernet -c aes128-ctr -f -w 0:0 vpn-server true
ifconfig tap0 192.168.32.2 pointopoint 192.168.32.1
ssh vpn1 ifconfig tap0 192.168.32.1 pointopoint 192.168.32.2

但是上面兩種 tunnel 都不穩定,換用 openssh-hpn 也是一樣.

ping -f 192.168.32.1 不一會就掛了.

最後還是回到 OpenVPN 最穩定了

參考資料:

原文http://blog.xuite.net/happyman/tips/26217021

OpenSSH 自4.3之后提供了一个简单的VPN支持,是不同于ssh隧道代理的完整的vpn称之为ssh vpn吧,有兴趣的参看以下文字搭建
https://help.ubuntu.com/community/SSH_VPN
http://www.debian-administration.org/articles/539
http://wiki.enigmacurry.com/OpenSSH
http://www.perturb.org/display/entry/770/
http://prefetch.net/blog/index.php/2008/06/26/opensshs-vpn/
目前还没有任何评论.