无名阁

美好的生活需要用心记录

ubuntu下使用ssh翻墙

2012-2-2 笑看风云 网络知识

之前我曾经写过一篇文章,讲的是在windows下通过ssh和firefox来穿越gfw,现在本篇文章将介绍在ubuntu乃至linux系统下柔和通过ssh来翻墙。

我们通过之前的文章知道win下连接ssh需要MyEnTunnel或者putty软件,但是在linux系统下你并不需要这些软件,就拿ubuntu来说,安装好ubuntu之后,ubuntu就已近只带了ssh,那么我们该如何使用呢?

假设你的ssh帐号为xxx,服务区地址为yyy.com

首先打开终端:

输入

ssh -qTfnN -D 7070 xxx@yyy.com 

-q :- be very quite, we are acting only as a tunnel. 使用安静模式
-T :- Do not allocate a pseudo tty, we are only acting a tunnel.不要分配tty
-f :- move the ssh process to background, as we don’t want to interact with this ssh session directly. 后台运行
-N :- Do not execute remote command.不执行远程命令
-n :- redirect standard input to /dev/null.从定向输出到/dev/null

然后回车,过一小会会出现提示,让你输入yes或者no,这里当然要输入yes,输入yes后接着会要你输入密码,现在只要输入ssh帐号的密码就可以了。

当然这样的话大家会觉得很麻烦,其实我们可以创建一个启动器,名称随意,命令类似于 ssh -qTfnN -D 7070 xxx@yyy.com,即可.

或者创建一个脚本,脚本内容如下:

#!/bin/bash

ssh -qTfnN -D 7070 xxx@yyy.com

保存为ssh.sh 然后在属性中勾选允许以程序执行文件即可

之前有人回复要是能够自动登录就好了,其实还真有这个脚本,但是有点不好的地方就是密码是明文保存的有点不安全,当然,如果就你一个人用电脑这个也就不是什么问题了,下面贴出脚本

#!/usr/bin/expect

sleep 18

###########################################
# 服务器地址(或IP)

set SERVER "xxx"

# 服务器 SSH 端口号

set PORT "xxx"

# SSH 用户名

set USER "xxx"

# 密码
set PASSWD "xxx"

###########################################

set timeout 60

spawn /usr/bin/ssh -qTfnN -D 7070 -p $PORT $USER@$SERVER

expect {

"*(yes/no)*" { send "yes\r"}

"password:" { send "$PASSWD\r" }

}

expect eof

把文中的xxx改成你自己的信息,然后保存成ssh.sh文件,然后赋予可执行权限,接着让他开机自启动即可。(运行此脚本需要安装expect。)

但我们成功的登录后就可以关闭终端了,也许有人问,这样我该如何关闭ssh代理呢?其实很简单,在终端中输入

killall ssh 即可。

标签: ssh

et_highlighter51

评论:

Emir-liu
2019-10-07 00:21
你好。我也是ubuntu,通过SSH翻墙。遇到问题,google可以进入,但是facebook,twitter之类的网站却无法进入。我应该怎么测试哪里出了问题,该怎么解决呢
路人甲
2017-07-05 21:56
ssh -qTfnN -D 7070 xxx@yyy.com和killall ssh这两个命令需要sudo执行
笑看风云
2017-07-19 13:08
@路人甲:并不需要,你是不是启用Root权限了?
现在如果只是为了魔法上网,最好用的软件是小飞机.

发表评论: