sockets5搭建代理服务器
‘壹’ 什么是S5代理
S5代理是采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。
它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于 您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。
‘贰’ 服务器如何架设S5代理
需要有路由器管理权,然后在转发规则中设置DMZ主机为本机,或者端口影射本机.都需要有路由器管理权.
如何设置代理服务器可以用ROXY
这里讲的是CentOS5环境下的架设方法,其他linux版本以此类推
首先到http://ss5.sourceforge.net/software.htm去下载最新的for linux版本
目前是:ss5-3.6.4-3.tar.gz
# tar xvf ss5-3.6.4-3.tar.gz
# cd ss5-3.6.4
# ./configure
结果可能看到错误, 因为我就碰到了
checking security/pam_misc.h usability... no
checking security/pam_misc.h presence... no
checking for security/pam_misc.h... no
configure: error: *** Some of the headers weren't found ***
缺某些库文件, 我看到和pam有关的, 是pam-devel包
# yum -y install pam-devel
# make
# make install
make install之后没有任何显示, 这其实已经安装完毕了, 不必疑惑
修改配置文件:
/etc/opt/ss5/ss5.conf
修改这行:
auth 0.0.0.0/0 - -
改成:
auth 0.0.0.0/0 - u
然后在/etc/opt/ss5/ss5.passwd中, 一行一个用户+密码
# cat ss5.passwd
hao32 123456
# /etc/rc.d/init.d/ss5 start
报错
/etc/rc.d/init.d/ss5: line 41: syntax error near unexpected token `;;'
/etc/rc.d/init.d/ss5: line 41: ` ;;'
vi下看看41行, 在;;之前少了结束fi
38 /usr/local/sbin/ss5 -t
39 fi
40 echo "done"
41 fi
42 ;;
继续# /etc/rc.d/init.d/ss5 start
38行又报错... 说没有这个目录或者文件:/usr/local/sbin/ss5
手动 把/usr/local/sbin/ss5换成了/usr/sbin/ss5
# /etc/rc.d/init.d/ss5 start
doneting ss5... [ OK ]
再重启下看看:
# /etc/rc.d/init.d/ss5 restart
Restarting ss5... Shutting down ss5...
done [ OK ]
doneting ss5... [ OK ]
看来没啥问题, 过了, 现在你就可以使用服务器的IP, 端口1080, 用户hao32, 密码123456来测试你的socks5服务器了, 更多高级应用, 就参加ss5.conf, 里面有详细的说明。
‘叁’ 如何在Ubuntu 16上搭建sock5代理服务器,如何实现用户名和密码的设置以防止被别人使用
1. 引入mosquitto仓库并更新
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
2. 执行以下命令安装mosquitto包
sudo apt-get install mosquitto
3. 安装mosquitto开发包
sudo apt-get install libmosquitto-dev
4. 安装mosquitto客户端
sudoapt-get install mosquitto-clients
5. 查询mosquitto是否正确运行
sudo service mosquitto status
6. 本机测试
打开一个终端,执行以下命令订阅主题"mqtt"
mosquitto_sub -h localhost -t "mqtt" -v
打开另外一个终端,发布消息到主题 “mqtt”
mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT"
‘肆’ 如何搭建代理服务器
你好,搭建代理服务器的话,非常简单,其实也就以下步骤:
1.注册一个虚拟主机。
2.先安装服务端;
3.再安装客户端;
4.最后测试服务器状态
‘伍’ Socket编程如何搭建一个外网可以访问的服务器
步骤:
1,和代理建立tcp联接。
2,向代理发送版本的请求信息:
void CCommunicator::SendVer()
{
int datasize = 6;
char tempbuf[6];
tempbuf[0]=5;
tempbuf[1]=4;//标示后面所根的字接数
tempbuf[2]=0;
tempbuf[3]=1;
tempbuf[4]=2;
tempbuf[5]=3;
int senddatalen;
senddatalen=send(m_sock,(char*)tempbuf,6,0);
}
这一步如果失败,断开建立的tcp联接,如果成功,如果需要用户验证则进行步骤3,否则进行4.
3,如果需要用户验证,则类似:
BOOL CCommunicator::SendUserTest()
{
int usernamelen=0;
int userpasslen=0;
usernamelen=m_strTestUserName.GetLength();
userpasslen=m_strTestUserPass.GetLength();
char tempbuf[100];
tempbuf[0]=5;
tempbuf[1]=usernamelen;//标示后面所根的字接数
strcpy(&tempbuf[2],m_strTestUserName);
tempbuf[2+usernamelen]=userpasslen;
strcpy((char*)&tempbuf [3+usernamelen],m_strTestUserPass);
int senddatalen;
int len;
len=usernamelen+userpasslen+3;
senddatalen=send(m_sock,(char*)tempbuf,len,0);
} 如果失败,断开建立的tcp联接, 如果用户返回成功,步骤4.
4,发送请求的协议类似:
void CCommunicator::SendRequestUDP()
{
int const datasize=10;
BYTE tempbuf[datasize]; tempbuf[0]=5;
tempbuf[1]=3;//标示UDP连接
tempbuf[2]=0;
tempbuf[3]=1;
tempbuf[4]=0;
tempbuf[5]=0;
tempbuf[6]=0;
tempbuf[7]=0;
*((SHORT*)(&(tempbuf[8])))=m_uBindUDPPort; //UDP在客户端绑定的端口,就是你本地机器的做udp数据传送的端口调用
//socket函数后,再调用bind()来邦定一个端口。
char temp;
temp=tempbuf[8];
tempbuf[8]=tempbuf[9];
tempbuf[9]=temp;
int senddatalen=send(m_sock,(char*)tempbuf,datasize,0);
}
如果失败,断开建立的tcp联接,如果返回成功,验证完毕!步骤5
5,真正的数据传送,用代理传送的时候,数据包的前面加上10个字节类似:
void CCommunicator::CopyDataHead(BYTE * ptempbuf)
{
struct in_addr addr;
addr.s_addr=inet_addr(“202.220.33.333”);//这个ip是服务器端的ip
ptempbuf[0]=0;
ptempbuf[1]=0;
ptempbuf[2]=0;
ptempbuf[3]=1;
ptempbuf[4]=(char)addr.S_un.S_un_b.s_b1;
ptempbuf[5]=(char)addr.S_un.S_un_b.s_b2;
ptempbuf[6]=(char)addr.S_un.S_un_b.s_b3;
ptempbuf[7]=(char)addr.S_un.S_un_b.s_b4;
*((SHORT*)(&(ptempbuf[8])))=m_uServerUDPPort;//服务器的端口,就是你最终要发到那个服务器的端口,也就是你的qq服务器。
char temp;
temp=ptempbuf[8];
ptempbuf[8]=ptempbuf[9];
ptempbuf[9]=temp;
}
真正发送的时候类似:
int CCommunicator::SendBufferUDP(LPBYTE lpBuf,int nLen)
{
BYTE tempbuf[1000];
int iHeadData=0;
struct sockaddr_in her;
her.sin_family=AF_INET;
her.sin_addr.s_addr=inet_addr(m_szProxyAddr);//代理服务器
her.sin_port=htons(m_uSocksPort);//发送请求的时候返回的代理服务器端的端口,记住,这是最重要的。
CopyDataHead(tempbuf);
iHeadData=10;
nLen=nLen+10;
int addr_len;
addr_len=sizeof(struct sockaddr);
CopyMemory((char*)&tempbuf[iHeadData],lpBuf,nLen);
int returndatalen=sendto(m_socket,(char *)tempbuf,nLen,0,(struct sockaddr *)&her,addr_len);
‘陆’ 如何搭建代理服务器
以CCProxy为例,代理服务器软件CCProxy使用方法如下:
1、首先要保证每台机器都指定了一个固定的IP地址。
2、是找一个CCProxy的安装程序。
运行下载后的Ccproxysetup.exe就可以一步步进行安装,只是在最后一步选择语言时要选择ChineseGB即为中文简体。安装完成后,桌面有一个CCProxy的绿色图标,双击即可启动CCProxy了。绿色的网格坐标将会出现黄色的曲线表示网络数据流量。
客户机的设置
1、对TCP/IP协议的属性进行设置。
方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“192.168.0.1”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。
2、重新启动后,右击桌面上的IE图标,选择“属性”。在接下来的“Internet属性”对话框中进行如下设置:选中“连接”标签;单击“局域网设置” 按钮;选中“使用代理服务器”;单击“高级”;在“服务器类型”中分别填入:HTTP为192.168.0.1,端口为808;FTP为 192.168.0.1,端口为2121;Socks为192.168.0.1,端口为1080;然后单击[确定]完成对IE的设置。
上网浏览看一下。
成了上述的操作后,将服务器连接到因特网上,再启动CCProxy,客户机就可以通过IE自由在网际之间穿梭了,想要停止代理服务只需单击[停止]按钮即可。
希望我的回答可以帮助你,望采纳!
‘柒’ 急!!自己怎么搭建HTTP/Socks5隧道代理呢
自己搭建高质量亿级IP的HTTP/Socks5隧道代理
一、前言
在做爬虫、数据采集、账号搜索项目时,需要用到高质量代理IP。目前比较流行也是最常见的代理IP服务,大部分是通过api链接提取。通过不断的访问api接口,api服务器返回一个或多个可用代理IP,然后将代理IP应用于自己的程序或软件中。api服务器维护了一个可用IP池,并且不断在更新加入新的可用IP。客户端访问时,则返回最新可用IP。
API提取方式简单实现,但也有一定弊端,主要是客户端需要不断的访问api接口获取最新代理,需要一直循环。根据代理质量的不同,获取到的代理不一定全部可用,影响了爬虫的效率。这里推荐酷鱼代理IP(https://kuyukuyu.com),有动态代理和私密代理,速度和可用率都比较好。
那么,有没有不需要api的代理方式呢,那我们来看看隧道代理。
二、隧道代理是什么
隧道代理只需设置固定接口,云端自动切换不同IP,省去了客户端频繁获取的麻烦。并且通过隧道代理的多路负载技术,大大提高的代理速度和可用率。隧道代理没有一次提取多少个IP的概念,主要是通过对不同客户的并发请求数进行限制。一般可达到50-100次/秒的并发请求。
三、隧道代理架构
隧道代理有多个可用路径进行转发,采用多路复用、择优选择技术,提高代理成功率。经测试成功率可达99%以上。
代理服务器返回结果时没有经过隧道代理,而是直接返回给代理使用者。因为隧道代理仅起到建立隧道连接的作用,并不参与数据传输。保障了代理执行效率。
使用方便,需要频繁切换代理。
支持高并发,多客户端同时使用。
五、实现步骤
首先需要找到一个可持续供给的代理IP池,代理IP最好是同时支持HTTP(s)和Socks5协议的,这样我们的隧道代理也可以支持socks5。这里推荐酷鱼私密代理 https://kuyukuyu.com/mains/secret ,可用率99%以上,速度快。
购买后在用户中心获取API提取链接,然后设置白名单和提取数量。
将获取到的代理写入Squid配置文件。/etc/squid/squid.conf
重载配置文件,使用配置生效。
每隔1秒重复一次,并不断循环。
六、Squid使用方法
将squid 做为代理服务器
备份源文件 cp /etc/squid/squid.conf /etc/squid/squid.conf.source,用于脚本自动更新
在squid所在服务器运行脚本。
七、进一步优化
由于squid只支持http(s),不支持socks5协议,所有就算购买的代理池支持socks5,隧道代理也不支持。如需支持socks5,只需要使用其他软件替代squid。如果有这方面的需要可以联系酷鱼代理客服。
可以在隧道代理上使用iptables进行限制访问,达到白名单功能。
iptables还可以对单个客户端请求数量或流量限制,达到限流功能。
文章来源:网页链接