打造家里7*24小时在线的SSH代理
实现此功能,主要是为了充分压榨和利用家里的PT下载机,让家里的其他网络设备能够通过共享出来的socket5代理平滑的上网,你懂的 我们都知道,SSH支持端口转发,能够把当前连接状态的SSH,共享为socket5代理,主要就是使用到ssh命令的-D参数。另外,在Linux/U
实现此功能,主要是为了充分压榨和利用家里的PT下载机,让家里的其他网络设备能够通过共享出来的socket5代理“平滑的”上网,你懂的……
我们都知道,SSH支持端口转发,能够把当前连接状态的SSH,共享为socket5代理,主要就是使用到ssh命令的-D参数。另外,在Linux/Unix平台下,一般运行SSH命令,是需要输入密码的,我们需要做一些设置,让SSH能够通过public key来验证,从而省去输入密码的繁琐步骤。如果你用的是windows平台,那就方便多了,推荐使用Tunnelier这个软件,不但可以保存SSH用户名和密码,还可以自动断线重连。使用此工具,你可以忽略掉此文了……
下面介绍一下Linux/Unix下通过public key验证SSH登录的步骤:
1. 需要在你的客户端机器生成public key,通过如下命令来实现:
ssh-keygen -t rsa
跟着提示,一步一步按回车,就可以生成一对key,包含private key和public key,然后,通过scp/SFTP/rsync/FTP 等等方式,把这个含有public key的文件: id_rsa.pub上传到你的SSH连接的服务端上去。
2. SSH连接到服务端,设置SSH验证的方式,把SSH配置文件中的下面两项的注释去掉,使其生效:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
开启public key验证,并且指定了key存放的路径,比如,你如果用用户名user1登录SSH,就得把上面提到的public key file: idrsa.pub 上传到服务器上的 /home/user1/.ssh/ 并改名叫做authorizedkeys
步骤操作完成之后,重启一下sshd服务,然后客户端就可以通过public key来连接SSH了。
搞定上面的两步,我们可以编辑一个shell文件,比如叫做AutoSSH.sh,内容如下:
/usr/bin/ssh -p 24 -N -D 0.0.0.0:7070 user1@YourDomain.com &
赋予脚本可执行权限,然后执行,你会发现SSH自动连接成功,并且会在本机监听7070端口,这就是一个socket5代理了,然后充分发挥你的智慧,该干嘛干嘛去,比如Firefox+AutoProxy,或者Chrome+Proxy SwitchySharp,等等…… 哥就不细说了……
这里需要注意的是,-D后的IP,必须是0.0.0.0,这样,这个socket5代理才能被家里局域网中的其他机器访问到,不然,默认只监听本机的127.0.0.0:7070,其他机器是访问不了的!
本文貌似要接近尾声了,不过,你用了一段时间后,会发现一个比较严肃的问题,这个SSH貌似一段时间连上能用,过了一段时间就自动断开了,你不得不一次又一次的手动运行这个脚本。
这是咋回事呢? 原来,SSH是默认有一个空闲时间的,当客户端没有操作处于一定的空闲时间,服务端就会主动断开SSH连接。
在SSH服务端的配置文件中,有两个参数,分别叫做:ClientAliveInterval 和 ClientAliveCountMax,这个就是用来控制最大闲置时间的。
ClientAliveInterval 数值是秒,比如你设置为300,就是5分钟.
ClientAliveCountMax 指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数。比如:
ClientAliveInterval 300
ClientAliveCountMax 5;
则代表允许超时 1500秒 =25分钟
通过更改数值大小,能保证SSH连接最大闲置时间。不过感觉这样的方式还是不太靠谱,一旦网络遇到问题,或者其他原因导致SSH连接端口,你还是得手动去运行那个连接SSH的脚本。
既然这样,我们还是自己动手,丰衣足食一下,俺顺带用ruby写了个检测SSH连接是否断开,并且自从运行SSH连接脚本的简单程序:
#!/usr/local/rvm/bin/ruby #AutoSSH.rb #Written by Timothy 2012.11.19 #Run it with: ruby AutoSSH.rb & lambda{ PORT_NUM = "0.0.0.0:7070" GREP_STR = "netstat -anp|grep #{PORT_NUM}" SHELL_PATH = "/root/AutoSSH/AutoSSH.sh &" pipe = IO.popen(GREP_STR) result = pipe.gets if((result != nil) && (result.include? PORT_NUM)) return else p 'SSH is disconnected! Will reconnect it!' system SHELL_PATH end }.call
这个程序的功能,就是检测0.0.0.0:7070 是否还在监听。你或许需要根据你的需求,配置一下AutoSSH.sh文件的路径,然后,把这个脚本加到系统的定时任务里面去,让它每一分钟执行并检测一次,若是遇到SSH连接端口,会立马重新连接SSH的。如果你机器没有配置ruby环境,可以google一下如何安装ruby。
大功告成,到此,你就有了一个7*24小时不断网的SSH代理,供家里其他的机器同时使用。
声明: 此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设
本站文章均采用 知识共享署名-相同方式共享3.0 协议进行授权,除非注明,本站文章均为原创,转载请注明转自 Timothy's Space 并应以链接形式标明本文地址!
原文地址:打造家里7*24小时在线的SSH代理, 感谢原作者分享。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











vivox100s と x100 携帯電話はどちらも vivo の携帯電話製品ラインの代表的なモデルであり、それぞれ異なる時代における vivo のハイエンド技術レベルを代表するものであるため、2 つの携帯電話にはデザイン、性能、機能に一定の違いがあります。この記事では、消費者が自分に合った携帯電話をより適切に選択できるように、これら 2 つの携帯電話を性能比較と機能分析の観点から詳しく比較します。まずはvivox100sとx100の性能比較を見てみましょう。 vivox100s には最新の機能が搭載されています。

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

インターネットの急速な発展に伴い、セルフメディアという概念が人々の心に深く根付いてきました。では、セルフメディアとは一体何でしょうか?その主な特徴と機能は何ですか?次に、これらの問題を 1 つずつ検討していきます。 1. セルフメディアとは何ですか? We-media は、その名前が示すように、あなたがメディアであることを意味します。これは、個人またはチームがインターネット プラットフォームを通じてコンテンツを独自に作成、編集、公開、配布できる情報媒体を指します。新聞、テレビ、ラジオなどの従来のメディアとは異なり、セルフメディアはよりインタラクティブでパーソナライズされており、誰もが情報の制作者および発信者になることができます。 2. セルフメディアの主な特徴と機能は何ですか? 1. 敷居が低い: セルフメディアの台頭により、メディア業界への参入の敷居が低くなり、煩わしい機材や専門チームは必要なくなりました。

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

小紅書が若者の間で人気になるにつれ、ますます多くの人がこのプラットフォームを使用して、自分の経験や人生の洞察のさまざまな側面を共有し始めています。複数の小紅書アカウントを効果的に管理する方法が重要な問題となっています。この記事では、Xiaohongshu アカウント管理ソフトウェアの機能のいくつかについて説明し、Xiaohongshu アカウントをより適切に管理する方法を探ります。ソーシャルメディアが成長するにつれて、多くの人が複数のソーシャルアカウントを管理する必要があることに気づきます。これは小紅書ユーザーにとっても課題です。小紅書アカウント管理ソフトウェアの中には、コンテンツの自動公開、スケジュールされた公開、データ分析、その他の機能など、ユーザーが複数のアカウントをより簡単に管理できるようにするものがあります。これらのツールを通じて、ユーザーはアカウントをより効率的に管理し、アカウントの露出と注目を高めることができます。さらに、Xiaohongshu アカウント管理ソフトウェアには、

PHP のヒント: 前のページに戻る機能をすばやく実装する Web 開発では、前のページに戻る機能を実装する必要があることがよくあります。このような操作により、ユーザー エクスペリエンスが向上し、Web ページ間の移動が容易になります。 PHP では、いくつかの簡単なコードを通じてこの機能を実現できます。この記事では、前のページに戻る機能を素早く実装する方法と、具体的な PHP コード例を紹介します。 PHP では、$_SERVER['HTTP_REFERER'] を使用して前のページの URL を取得できます。

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。
