上周听客服部的同事说,咱们云堤数据中心-宁波高防服务器的一个客户需要做端口转发,客户不会搭建端口转发只能求助于我们机房技术人员。下面咱们就来了解下,什么是端口转发?centos下如何用nginx做tcp端口转发?
什么是端口转发?
端口转发是用户访问A点服务器的某端口时,A点服务器将收到的请求转发至B点服务器的某端口的行为。举个通俗的例子,小刀打电话给给大刀,小刀将要说的话对着电话说,电话将听到的信息转发到电话那头的大刀,这个过程也相当于是话的转发行为(也称代理转发)。为什么需要端口转发行为呢?当用户访问源服务器的时候网络速度不是很快,不是很理想的时候。而用户访问另一台服务器的时候很快,而这台服务器与源服务器连接畅通的情况下,我们可以将这台速度快的服务器做为代理转发服务器,这样用户访问代理服务器就相当于访问了我们的源服务器。
如何在centos下用nginx做tcp端口转发?
其实现在网络上有很多转发工具,一般为windows版的较多(如:porttunnel)。那么回到前面我们客服部同事说的,我们高防服务器的客户也需要做端口转发,不过有点不同的是客户需要在centos系统上做端口转发,根据客户的需求,最后我们决定用nginx工具来实现客户的需求。下面咱们贴下相关的代码:
yum -y install gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel #安装相应的环境包
wget http://nginx.org/download/nginx-1.13.5.tar.gz #下载nginx软件包
tar -zxvf nginx-1.13.5.tar.gz #解压软件包
cd nginx-1.13.5/
./configure --with-stream --with-stream_ssl_module
make #编译
make install #安装nginx
vi /usr/local/nginx/conf/nginx.conf #编辑nginx配置文件
stream {
upstream 1000 {
hash $remote_addr consistent;
server 1.1.1.1:1000 max_fails=3 fail_timeout=30s;
}
server {
listen 1000;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 1000;
}
}
#将本机的1000端口转发至1.1.1.1的1000端口
chkconfig iptables off #关闭防火墙
pkill -9 nginx #结束nginx
/usr/local/nginx/sbin/nginx #启动nginx
经过以上设置咱们的端口转发就完成了。那么客户为什么要使用咱们的高防服务器做转发呢?是因为客户源服务器被黑客攻击,客户想通过咱们宁波高防服务器来抗ddos流量攻击,因为通过代理端口转发后,用户只与咱们的高防服务器通信,不会直接与源服务器通信,当然攻击者也只能找到咱们高防服务器的IP。从而隐藏并保护了真实的源服务器IP。
通过以上的文章,大家应该对什么是端口转发,为什么要用端口转发大致有一定了解了,更多相关信息可以随时与我们陆网科技联系。