Ubuntu linux和android上安装使用obfsproxy给ssh"加速" ubuntuandoridobfsproxyssh加速
程序员文章站
2022-05-22 17:08:02
...
假如你有台国外的vps,ssh登陆使用的时候出现输入打字卡,慢等现象,毫不犹豫的使用obfsproxy来达到加速的目的!
obfsproxy是一个完全独立的项目,ubuntu安装如下(当然也是最简单快捷的安装方式了):
下载附件后
当然你也可以通过obfsproxy官方提供的ubuntu的deb源来安装,需要fan.qiang请自行谷歌,添加完的deb源后:
你的vps上的ubuntu服务器和ubuntu桌面安装obfsproxy的方式完全相同.
服务器上执行:
简单解释:127.0.0.1:22代表你服务器本地的ssh默认端口,0.0.0.0:8022是obfsproxy开启的服务器监听端口,后面obfsproxy的客户端会用到,当然这个端口可以随意更改
本地ubuntu桌面通过obfsproxy登陆ssh服务器:
当然你也可以开启ssh tunnel的socks代理
把你的浏览器代理设置成:socks 127.0.0.1 8080 即可畅游互联网免受干扰
这个时候你可以单独建立一个用来使用socks代理的无权限帐号
android手机上也是能完美使用obfsproxy的,有人给编译了基于shell的obfsproxy的android版见附件,不过这个旧版本只能支持obfs2还是会受到干扰的,希望有人能给编译最新版本支持obfs3
解压附件后,用电脑通过adb连接android手机后
假如你的手机没有root权限,可以复制obfsproxy到其它非系统目录,然后添加obfsproxy可执行权限也是一样使用obfsproxy,比如安装一个terminal IDE的应用,然后复制obfsproxy到可执行目录
然后打开手机的终端执行命令:
注意了,你的ssh服务上启动obfsproxy的命令要改成obfs2如下:
最后就是运行fqrouter的app,添加代理,选择ssh,地址就是127.0.0.1,端口就是9122
以vpn的模式运行不需要root权限
当然你也可以不用密码,直接设置ssh密钥登陆,有效避免中间人攻击更安全
假如你的私钥地址: ~/.ssh/id_rsa
即可,127.0.0.1是密钥的文件名字不是目录哦,把fqrouter上的ssh密码留空会自动使用密钥登陆
最后要注意fqrouter和obfsproxy的启动顺序,先运行obfsproxy,再运行fqrouter,一开始访问页面可能会失败,或者较慢..稍等片刻即可!
fqrouter的vpn模式也会区分国内国外流量,此时是不是非常完美了~~ 当然obfs2会受到干扰,最新版的支持Obfs3才是最完美的,求大神能根据源码编译个最新版
参考:1.https://lists.torproject.org/pipermail/tor-dev/2012-February/003296.html
2.https://www.torproject.org/docs/debian.html.en#ubuntu
obfsproxy是一个完全独立的项目,ubuntu安装如下(当然也是最简单快捷的安装方式了):
下载附件后
tar -xvzf obfsproxy-deb.tar.gz cd obfsproxy-deb #安装目录中的两个deb包 sudo dpkg -i *.deb #若有安装出错提示依赖问题,再执行下面的命令会自动解决安装的问题 sudo apt-get install -f sudo dpkg -i *.deb
当然你也可以通过obfsproxy官方提供的ubuntu的deb源来安装,需要fan.qiang请自行谷歌,添加完的deb源后:
sudo apt-get update sudo apt-get install obfsproxy
你的vps上的ubuntu服务器和ubuntu桌面安装obfsproxy的方式完全相同.
服务器上执行:
obfsproxy --log-min-severity=info obfs3 --dest=127.0.0.1:22 server 0.0.0.0:8022
简单解释:127.0.0.1:22代表你服务器本地的ssh默认端口,0.0.0.0:8022是obfsproxy开启的服务器监听端口,后面obfsproxy的客户端会用到,当然这个端口可以随意更改
本地ubuntu桌面通过obfsproxy登陆ssh服务器:
obfsproxy --log-min-severity=info obfs3 --dest=你的ssh服务器地址:8022 client 127.0.0.1:9022 #ssh登陆 ssh -v -p 9022 ssh登陆名@127.0.0.1
当然你也可以开启ssh tunnel的socks代理
ssh -NCv -D 8080 -p 9022 ssh登陆名@127.0.0.1
把你的浏览器代理设置成:socks 127.0.0.1 8080 即可畅游互联网免受干扰
这个时候你可以单独建立一个用来使用socks代理的无权限帐号
sudo adduser --shell /usr/sbin/nologin mysocks #然后通过密钥登陆,比如你从client端scp到ssh服务器的公钥名字为:socks_rsa.pub sudo mkdir /home/mysocks/.ssh sudo chmod 700 /home/mysocks/.ssh cat ./socks_rsa.pub |sudo tee /home/mysocks/.ssh/authorized_keys sudo chmod 600 /home/mysocks/.ssh/authorized_keys sudo chown mysocks:mysocks -R /home/mysocks/.ssh #ssh服务器上的mysocks帐号的公钥设置完毕
android手机上也是能完美使用obfsproxy的,有人给编译了基于shell的obfsproxy的android版见附件,不过这个旧版本只能支持obfs2还是会受到干扰的,希望有人能给编译最新版本支持obfs3
解压附件后,用电脑通过adb连接android手机后
adb push obfsproxy /sdcard/ #重新挂载/system目录支持读写,需要root权限,你要开启root终端的支持 adb shell su -c 'mount -o remount,rw /system' #复制obfsproxy到可执行目录 adb shell su -c 'cp /sdcard/obfsproxy /system/bin/' #添加可执行权限 adb shell su -c 'chmod 755 /system/bin/obfsproxy' #关闭/system目录读写 还原设置为只读 adb shell su -c 'mount -o remount,ro /system'
假如你的手机没有root权限,可以复制obfsproxy到其它非系统目录,然后添加obfsproxy可执行权限也是一样使用obfsproxy,比如安装一个terminal IDE的应用,然后复制obfsproxy到可执行目录
然后打开手机的终端执行命令:
obfsproxy obfs2 --dest=你的ssh服务器地址:8122 client 127.0.0.1:9122
注意了,你的ssh服务上启动obfsproxy的命令要改成obfs2如下:
obfsproxy obfs2 --dest=127.0.0.1:22 server 0.0.0.0:8122
最后就是运行fqrouter的app,添加代理,选择ssh,地址就是127.0.0.1,端口就是9122
以vpn的模式运行不需要root权限
当然你也可以不用密码,直接设置ssh密钥登陆,有效避免中间人攻击更安全
假如你的私钥地址: ~/.ssh/id_rsa
adb push ~/.ssh/id_rsa /sdcard/127.0.0.1
即可,127.0.0.1是密钥的文件名字不是目录哦,把fqrouter上的ssh密码留空会自动使用密钥登陆
最后要注意fqrouter和obfsproxy的启动顺序,先运行obfsproxy,再运行fqrouter,一开始访问页面可能会失败,或者较慢..稍等片刻即可!
fqrouter的vpn模式也会区分国内国外流量,此时是不是非常完美了~~ 当然obfs2会受到干扰,最新版的支持Obfs3才是最完美的,求大神能根据源码编译个最新版
参考:1.https://lists.torproject.org/pipermail/tor-dev/2012-February/003296.html
2.https://www.torproject.org/docs/debian.html.en#ubuntu
上一篇: 抽象和封装