rsync over ssh over socks
2610 ワード
このように振り回されるのは、まずある壁に貢献したプログラマーを強く非難しなければならない.解放後、あなたたちは必ず清算される.
この件の需要はこのようにして、私はいくつかの国外のVPSが自分と友达のBLOGを走るために使って、保険のために、私はバックアップシステムを作りました:
家のサーバーの上で1つのZFSをつけてリモートVPSのバックアップをして、バックアップの方法は毎晩rsync over sshを通じて同期を行って、それからローカルサーバーはスナップショットを生成してバージョンの制御をします.
実現は簡単で、ニーズを満たすことができます.
リモートVPSデータが失われた場合(障害、予期せぬ削除、ブラックなど)、私はすぐにVPSを再開して、ローカルバックアップのデータを復元することができます.リモートデータが誤って変更された場合でも、ローカルZFSのスナップショットで数日前のバックアップをクローンしてリカバリできます.全体的にはかなり頼りになる--現在も一度しか回復していないが、昨年はDOの雌鶏が故障し、VPSが回復した後はSSH接続ができず、その破れたCONSOLEは国内ではまったくつながっていないので、再インストールするしかない.
しかし、今問題が来ました.
rsyncはSSHチャネルを通っているので、SSHプロトコルは監視されていて、トラフィックが大きくなると閉鎖されます.私はこのバックアップ機能で何度も閉鎖されているので、本当にTMDが人を切りたいです.反革命はみなこのように追い詰められたのだ.
しかし解放前には、自分で何とかして解決するしかなかった......
今から新しい案について話しましょう.
本来は前文で述べたような方式を参照してGPGで暗号化してHTTP明文で伝送したいのですが、ある壁では明文のHTTPを直接封殺することはなく、その中で伝送された内容を審査するだけですが、GPG暗号化を経ても何も審査できないので、速度が遅くなるだけですが、少なくとも切れません.
しかし問題が来ました:GPGの解読過程は秘密鍵のパスワードが必要で、これはまた人工的に入力しなければならなくて、自動的に入力することができません(GPG-agentでメモリの中でしばらく保存することができて再入力しなくて、sudoが1回のパスワードを入力してしばらくの時間を使うことができるように)、だから自動の任務を作ることができません.
そこでrsyncで文章を書き続けるしかありません.最後に一つの方法を考えました.
ssh over socks
方法は次のとおりです.
まずnc(netcat)というツールが必要です.このFreeBSDは持参しています.Linuxは別途インストールする必要があります.ncのフルネームはnetcatと呼ばれ、その名の通りネットワーク版catであり、LinuxではTCP/IPと呼ばれるスイスの軍刀でもある.
あとは~/.ssh/次はconfigファイルを作成します.内容は次のとおりです.
その中でyour-proxという名前は自分で勝手に取ることができます.yourserver.comは実際のリモートサーバであり、localhost:1080はローカルで動作するsocksエージェント(イントラネットの他の機器でも可能であれば、対応するイントラネットアドレスとポートに変更すればよい)を指し、このsocksエージェントの出口は壁の外にある必要があり(くだらない話)、yourserverに直接アクセスできることに注意する.comの場所.
ちなみにLinuxではncの代わりにもう一つの簡単なツールを使うこともできます.それはconnect-proxyです.ここでの使い方はncとあまり違いませんが、ProxyCommandを次のように変更します.
この操作の役割は、仮想的なSSHサーバ構成を作成することであり、その後、socksエージェントを介してリモートサーバyourserverに接続することができる.com:
簡単にcomをyour-proxに変えればいいです.
rsyncも同じです
最後にssh/configでは複数のHostを異なるremote serverに対して構成することができますが、もちろん*-proxの名前は同じではありません.
なぜ閉鎖を防ぐことができるのですか?
元のrsync over sshはこうでした.
local rsync<=>SSH<=>(壁)<=>remote server
でも今はこうなりました
local rsync<=>SSH<=>local socks proxy<=>(ある壁)<=>remote socks proxy<=>remote server
socks proxyの間では、壁の審査と封殺を無数の方法で回避することができます.
最後に、民脂民膏で壁を建てて人民を害する豚や犬に及ばないやつたちを唾棄し、一生性能力を失うことを呪う.
需要
この件の需要はこのようにして、私はいくつかの国外のVPSが自分と友达のBLOGを走るために使って、保険のために、私はバックアップシステムを作りました:
家のサーバーの上で1つのZFSをつけてリモートVPSのバックアップをして、バックアップの方法は毎晩rsync over sshを通じて同期を行って、それからローカルサーバーはスナップショットを生成してバージョンの制御をします.
実現は簡単で、ニーズを満たすことができます.
リモートVPSデータが失われた場合(障害、予期せぬ削除、ブラックなど)、私はすぐにVPSを再開して、ローカルバックアップのデータを復元することができます.リモートデータが誤って変更された場合でも、ローカルZFSのスナップショットで数日前のバックアップをクローンしてリカバリできます.全体的にはかなり頼りになる--現在も一度しか回復していないが、昨年はDOの雌鶏が故障し、VPSが回復した後はSSH接続ができず、その破れたCONSOLEは国内ではまったくつながっていないので、再インストールするしかない.
しかし、今問題が来ました.
rsyncはSSHチャネルを通っているので、SSHプロトコルは監視されていて、トラフィックが大きくなると閉鎖されます.私はこのバックアップ機能で何度も閉鎖されているので、本当にTMDが人を切りたいです.反革命はみなこのように追い詰められたのだ.
しかし解放前には、自分で何とかして解決するしかなかった......
今から新しい案について話しましょう.
シナリオの選択
本来は前文で述べたような方式を参照してGPGで暗号化してHTTP明文で伝送したいのですが、ある壁では明文のHTTPを直接封殺することはなく、その中で伝送された内容を審査するだけですが、GPG暗号化を経ても何も審査できないので、速度が遅くなるだけですが、少なくとも切れません.
しかし問題が来ました:GPGの解読過程は秘密鍵のパスワードが必要で、これはまた人工的に入力しなければならなくて、自動的に入力することができません(GPG-agentでメモリの中でしばらく保存することができて再入力しなくて、sudoが1回のパスワードを入力してしばらくの時間を使うことができるように)、だから自動の任務を作ることができません.
そこでrsyncで文章を書き続けるしかありません.最後に一つの方法を考えました.
ssh over socks
方法は次のとおりです.
まずnc(netcat)というツールが必要です.このFreeBSDは持参しています.Linuxは別途インストールする必要があります.ncのフルネームはnetcatと呼ばれ、その名の通りネットワーク版catであり、LinuxではTCP/IPと呼ばれるスイスの軍刀でもある.
あとは~/.ssh/次はconfigファイルを作成します.内容は次のとおりです.
Host your-prox
Hostname yourserver.com
ProxyCommand /usr/bin/nc -x localhost:1080 %h %p
その中でyour-proxという名前は自分で勝手に取ることができます.yourserver.comは実際のリモートサーバであり、localhost:1080はローカルで動作するsocksエージェント(イントラネットの他の機器でも可能であれば、対応するイントラネットアドレスとポートに変更すればよい)を指し、このsocksエージェントの出口は壁の外にある必要があり(くだらない話)、yourserverに直接アクセスできることに注意する.comの場所.
ちなみにLinuxではncの代わりにもう一つの簡単なツールを使うこともできます.それはconnect-proxyです.ここでの使い方はncとあまり違いませんが、ProxyCommandを次のように変更します.
/usr/bin/connect -S localhost:1080 %h %p
この操作の役割は、仮想的なSSHサーバ構成を作成することであり、その後、socksエージェントを介してリモートサーバyourserverに接続することができる.com:
ssh username@your-prox
簡単にcomをyour-proxに変えればいいです.
rsyncも同じです
rsync -az -e ssh username@your-prox:~/yourdir .
最後にssh/configでは複数のHostを異なるremote serverに対して構成することができますが、もちろん*-proxの名前は同じではありません.
げんり
なぜ閉鎖を防ぐことができるのですか?
元のrsync over sshはこうでした.
local rsync<=>SSH<=>(壁)<=>remote server
でも今はこうなりました
local rsync<=>SSH<=>local socks proxy<=>(ある壁)<=>remote socks proxy<=>remote server
socks proxyの間では、壁の審査と封殺を無数の方法で回避することができます.
最後に、民脂民膏で壁を建てて人民を害する豚や犬に及ばないやつたちを唾棄し、一生性能力を失うことを呪う.