华为服务器手机怎么激活obfuscated服务器

配合混淆ssh(obfuscated)的proxy智能线路选择 - 服务器技术综合 - 次元立方网 - 电脑知识与技术互动交流平台
配合混淆ssh(obfuscated)的proxy智能线路选择
也不知道怎么了,一些网站访问总是不稳定, 速度也不能令人满意(呵呵,你懂的),总是上演道高一尺魔高一丈的激情攻防游戏。最近又学习了obfuscated ssh,作者08年开发出来但一直没受到重视,甚至连openssh都不接受作者的提交,然而谁也不知道路在何方,巧的是由于祖国的日益强大,obfuscated ssh近几年火了,还火的一塌糊涂。不多说,更多详情自己google、baidu吧,下边只讲一下安装使用过程。
项目地址:/aligo/obfuscated-openssh
编译安装的话最好不要覆盖现有版本的ssh,使用时便于自主选择,下边的主要操作基于mac,linux下类似不多说,据说ubuntu已经默认支持了(没验证),windows就不提了装个potty就可以了。
一、以下是obfuscated ssh mac下的安装配置过程
下载源码:
/brl/obfuscated-openssh/archive/master.zip
配置参数设置新目录:
? brl-obfuscated-openssh-ca93a2c ./configure --prefix=/usr/local/newssh --sysconfdir=/etc/newssh
? brl-obfuscated-openssh-ca93a2c make
在mac下make好像很多人都遇到了这个问题,解决方法很简单:
先make clean
找到Makefile的57行最后加入-lresolv,然后在进行make & make install
? brl-obfuscated-openssh-ca93a2c cat -n Makefile|grep LDFLAGS=
57 LDFLAGS=-L. -Lopenbsd-compat/ -fstack-protector-all -lresolv
安装后效果如下:
/usr/local/newssh/bin/ssh -fCN -Z obfuscate_key ssh_user_name@ssh_server -p 110 -D 127.0.0.1:7070
这样就建立了完全的加密连接(初始化handshake的加密、ssh session的加密),设想如果有多个server的话,如何选择最快的server?
重点来了,那么可以结合ping、traceroute等检测手段选择最快的server进行连接(精华都在下边的脚本里,自己看),然后在结合crontab定期检测proxy的可用性,自动重连,呵呵,爽不,这里只贴出自己的脚本,详见/LaiJingli/fastproxy
? fastproxy cat fastproxy_v2.sh
#!/bin/bash
###port forwarding support obfuscated ssh handshak using ssh as socks proxy server for fast access intranet web sites behind firewall from anywhere.
###备选服务器列表
ssh_servers=(
###备选端口列表
ssh_server_ports=(80 110 )
###ssh相关参数定义
ssh_user_name=sshuser1
ssh_user_pass=123456
sshpass_cmd=&/bin/sshpass -p$ssh_user_pass &
ssh_obf_cmd=&/usr/local/newssh/bin/ssh -o StrictHostKeyChecking=no -p 110 -fCND 127.0.0.1:7070 -Z keyworks &
###定义运行此脚本所在os的ping返回结果格式
ping_os_type_macos=&round-trip&
ping_os_type_linux=&rtt&
ping_os_type=$ping_os_type_macos
#######以下内容不需要用户修改,自定义参数见上文变量定义部分
###parallel background detect which ssh server is the fastest according round-trip-time using ping and traceroute(for further support)
for i in `seq 0 $((${#ssh_servers[@]} - 1))` ;do
ip=${ssh_servers[$i]}
#echo $i $ip
###get the average round-trip-time
###ping 3次,每次间隔0.1s,超时1s
ping -c 2 -i 0.1 -t 1 $ip |grep $ping_os_type|awk -F/ '{print $5}' & /tmp/${ip}_rtt.log 2&&1 &
###记录每次ping进程的pid,以便后续根据pid是否存在判断进程是否早学完
pids[$i]=$!
#echo pid of $ip ${pids[$i]}
####循环检查pids数组中的pid是否运行结束的函数
pids_length=${#pids[@]}
array_check () {
for i in `seq 0 $((${#pids[@]} - 1))` ;do
#echo -------------------------------------array for loop----------------------
if [ ${pids[$i]} == 0 ] ;then
echo NULL &/dev/null
####通过ps动态检查pid是否结束,返回0说明进程还没有结束
ps aux|awk '{print $2}' | grep ^${pids[$i]}$ 2&&1 &/dev/null
pidstatus=$?
###if pids is not exists,that indecates the process is over,and display execute result,clean respective array elements
if [ $pidstatus != 0 ] ;then
####进程结束后,打印执行结果log
ip=${ssh_servers[$i]}
rtt=`cat /tmp/${ip}_rtt.log`
rtts[$i]=$rtt
echo &[$i] ping detect of ${ssh_servers[$i]} is over,and it's rtt is ${rtts[$i]} ms&
#####同时pids数组中对应pid重置为0
pids[$i]=0
####进程结束,返回200供后续判断
return 200
###wait for 1 seconds to check whether the pids is over
#sleep 0.1
####如果完成任务数complete_num不等于pids数组长度,则循环直到所有任务结束
complete_num=0
while [ ${complete_num} != ${pids_length} ] ;do
#echo =================================while loop=======================================
for ((j=0;j&${pids_length};j++)) ;do
array_check
####根据array_check函数返回值是否成功来确定complete_num数的增加
if [ $? == 200 ] ;then
complete_num=$((${complete_num}+1))
####打印最近任务完成的数量
echo -e & Ping Detect Report: complete_tasks/total_tasks:[${complete_num}/${pids_length}]&
###比较取到rtt最小的server地址
###初始化最小平均round-trip-time
min_rtt=10000
for i in `seq 0 $((${#ssh_servers[@]} - 1))` ;do
rtt=${rtts[$i]}
###如果当前rtt比最小的min_rtt还小,则min_rtt=$rtt
if [[ $(echo &$rtt & $min_rtt& |bc) = 1 ]];then
min_rtt=$rtt
min_ip=${ssh_servers[$i]}
echo ------------------------------
echo the fastest response time is $min_rtt ms of $min_ip ,to connect this server,plese wait a moment......
###kill the ssh session if it's pid is exist.
#ps aux|grep $ssh_user_name
ps aux|grep $ssh_user_name|grep -v grep|awk '{system(&kill -9 &$2)}'
#ps aux|grep $ssh_user_name|grep -v grep|awk '{print $2)}'|xargs kill -9
#echo ------------------------------
###make connection to the fastest server
$sshpass_cmd$ssh_obf_cmd$ssh_user_name@$min_ip
pidstatus=$?
if [[ $pidstatus = 0 ]];then
echo Good luck,you have alredeay connect to the fastest server!
echo ERROR OCCUR,PLEASE CHECK.
#echo ------------------------------
ps aux|grep $ssh_user_name
? fastproxy
延伸阅读:
目的:通过挂载的方式,可以类似访问本地磁盘的方式一...
本教程为 李华明 编著的iOS-Cocos2d游戏开发系列教程:教程涵盖关于i......
专题主要学习DirectX的初级编程入门学习,对Directx11的入门及初学者有......
&面向对象的JavaScript&这一说法多少有些冗余,因为JavaScript 语言本......
Windows7系统专题 无论是升级操作系统、资料备份、加强资料的安全及管......

我要回帖

更多关于 华为服务器raid配置 的文章

 

随机推荐