您的位置 首页 java

JAVA使用代理和3proxy代理服务器配置

最近做一个项目需要使用代理,比如A需要发数据给B,原来是直接A发送给B,现在需要经过代理P,变成了A发送给P、P再发送给B,P是透明代理,不做内容的解析。代理的协议包括FTP、 TCP UDP 。本文介绍3proxy 代理服务器 的配置以及JAVA代理的设置。


代理服务器使用3proxy

配置文件3proxy.cfg的配置如下:

#!/usr/local/ bin /3proxy
#域名解析服务器和缓存
nserver 8.8.8.8
nserver 4.4.4.4
nscache 65536
#超时设置
timeouts 1 5 30 60 180 1800 15 60
#日志设置
log "/root/log/3proxy.log" D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 3
# ip 设置,注意,此处外部IP使用0.0.0.0,不能直接使用机器的外网IP
external 0.0.0.0
internal 192.168.168.14
# SOCKS 代理,ip验证,允许所有的链接
auth iponly
flush
allow * * * *  CONNECT 
maxconn 65535
socks -p9000
#UDP转发
auth none
udppm -s 9001 222.189.192.118 9999
udppm -s 9002 222.189.192.139 9999
 

JAVA代理的设置

Apache Ftp client:

FTPClient client = new FTPClient();
client.setDefaultTimeout(30 * 1000);
client.setDataTimeout(180 * 1000);
client.setConnectTimeout(10 * 1000);
SocketAddress addr = new InetSocketAddress(proxyIp, proxyPort);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
client.setProxy(proxy);
client.connect(ip, port);
 

TCP:

Socket s =new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(proxyIp, proxyPort)));
SocketAddress addr = new InetSocketAddress(ip, port);
s.setSoLinger(true, 0);
s.setKeepAlive(true);
s.setTcpNoDelay(true);
s.setSoTimeout(3000);
s.connect(addr, 10000);
 

UDP:

本人目前还没找到JAVA UDP设置代理的方式,故采用UDP 端口转发 的方式,刚好3proxy也支持UDP转发,故在3proxy.cfg中配置端口和目标IP和端口的映射即可。

如本文对您有帮助,请关注【自学堂】头条号吧!

文章来源:智云一二三科技

文章标题:JAVA使用代理和3proxy代理服务器配置

文章地址:https://www.zhihuclub.com/182053.shtml

关于作者: 智云科技

热门文章

网站地图