基于java NIO的http代理.
性能与内存
占用cpu不到1%
内存最大35m(不含jvm自身)。GC次数和时间很少
总的来说,性能可以了吧。
命令行参数
可以添加两个命令行参数:
host=xxxx port=8080
如果不设置这两个参数: 本地代理将使用
InetAddress.getLocalhost()
的ip和8080
的端口。
注意,一台电脑会有好几个ip地址。如果使用127.0.0.1,则该代理只可以在本机上使用。如果使用局域网地址(最常见的是192.168.x.x),并合理配置jdk的防火墙权限,则可以在局域网中使用该代理。
那么如何把该代理部署到云服务器上?如下:
[root@VM_26_36_centos ~]ifconfig
eth0: flags=4163 mtu 1500
inet 10.154.26.36 netmask 255.255.192.0 broadcast 10.154.63.255
ether 52:54:00:b5:bb:6a txqueuelen 1000 (Ethernet)
RX packets 41677295 bytes 5458697312 (5.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41351236 bytes 5660742157 (5.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 3370828 bytes 195574819 (186.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3370828 bytes 195574819 (186.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@VM_26_36_centos ~]# java -jar proxyme.jar host=10.154.26.36
15:09:03.245 [main] WARN HttpProxyBootStrap - 提示:允许携带两个命令行参数 host=xxx port=1234
15:09:03.337 [main] INFO LocalSelector - 在10.154.26.36:8080端口启动了代理服务。注意可能非127.0.0.1
先ifconfig找到自己的云服务器内网地址(其实和局域网地址一个意思),然后在启动的命令行参数中,增加
host=内网地址
,进行启动。当然还需要配置防火墙。配好之后就可以连上服务器使用代理了。
不过,不可以用来翻墙。
---------
可以用做各种tunnel(stunnel,obfstunnel)的后端程序。
No comments:
Post a Comment