精华内容
下载资源
问答
  • 但除了在转发层面添加header的解决方式之外,我们大可在服务器层面做手脚,开放必要的端口即可,从源头上断绝了对服务接口的直接访问。 正文 首先有如下架构: Consul于服务器192.168.1.102; Gateway于服务器192....

    前言

    前面曾提到一些方法确保SpringCloud中服务接口先通过网关转发,再到达我们的主服务,避免请求越过网关,直接访问我们的主服务。

    但除了在转发层面添加header的解决方式之外,我们大可在服务器层面做手脚,开放必要的端口即可,从源头上断绝了对服务接口的直接访问。

    正文

    首先有如下架构:
    在这里插入图片描述
    Consul于服务器192.168.1.102;

    Gateway于服务器192.168.1.103;

    Auth(即我们的主服务)于服务器192.168.1.104;

    在Gateway的application.yml配置文件中,有:

    server:
      port: 8750
    spring:
      cloud:
        consul:
          host: 192.168.1.102
          port: 8500
          discovery:
            service-name: hpsyche-gateway-server
            prefer-ip-address: true
        gatway:
          - id: hpsyche-auth-server
            uri: lb://hpsyche-auth-server
            order: 8000
            predicates:
            - Path=/api/auth/**
            filters:
            - StripPrefix=2
    # gateway路由配置等
    	......
    

    在Auth中同样有如下,application.yml

    server:
      port: 8762
    spring:
      cloud:
        consul:
          host: 192.168.1.102
          port: 8500
          discovery:
            service-name: hpsyche_auth_server
            prefer-ip-address: true
    

    若此时启动consul+gateway+auth,可以通过http://192.168.1.103:8750/api/auth/xxx访问auth下的接口,此方式是通过网关的合理转发实现,但同样若访问http://192.168.1.104:8762/xxx,发现也可直接访问auth下的接口(不合理),所以我需要对auth服务器的端口加以限制。

    解决方式

    由于项目并没有挂在阿里云或其他云服务器上(没法直接通过安全组进行设置),所以手动敲起iptables命令!

    在104服务器下,先禁止8762端口的访问:

    iptables -I INPUT -p tcp --dport 8762 -j DROP
    

    再设置指定可以访问的ip,对consul和gateway可见,即:

    iptables -I INPUT -p tcp -s 192.168.1.102 --dport 8762 -j ACCEPT
    iptables -I INPUT -p tcp -s 192.168.1.103 --dport 8762 -j ACCEPT
    

    再通过如下命令

    iptables -L -n
    

    就可以查看是否成功添加端口规则啦!

    当然如果你操作有误,想要删除端口规则的话,可以通过如下命令:

    首先查看命令num号:

    iptables -L -n --line-numbers 
    

    在每个规则前都会有个数字,再通过如下命令即可删除:

    iptables -D INPUT #{num}
    

    疑问

    在实验中,我一开始尝试用将consul、gateway、auth三个服务都在同一台机器上192.168.1.102跑,通过iptables --sport来设置给auth服务添加如下规则:

    iptables -I INPUT -p tcp --dport 8762 -j DROP
    iptables -I INPUT -p tcp -s 192.168.1.102 --sport 8500 --dport 8762 -j ACCEPT
    iptables -I INPUT -p tcp -s 192.168.1.102 --sport 8750 --dport 8762 -j ACCEPT
    

    本以为可以实现,但发现配置了如上策略后,consul无法监控到auth服务,现在还暂不知什么原因(似乎不能指定某一个端口)。
    在这里插入图片描述

    虽说gateway、consul、主服务等不会部署到同一台机器,但对于如上问题还是有所困惑,如有大佬知道的,还望指教!

    展开全文
  • WebRTC网关服务器端口方案实现

    千次阅读 2018-09-05 17:20:33
    最简的服务器端端口方案是我们可以为每个客户端分配一个端口,服务器上使用这个端口区分每个用户,就像图里描述的A、B、C、D四个人在WebRTC网关服务器上分别对应UDP端口10001~1004。这种方案逻辑上很简单,很多开源...

    标准WebRTC连接建立流程

     

    这里描述的是Trickle ICE过程,并且省略了通话发起与接受的信令部分。流程如下:

     

    1) WebRTC A通过Signal Server转发SDP OFFER到WebRTC B。WebRTC B做完本地处理以后,通过 Signal Server转发SDP ANSWER到A。

     

    2)A、B同时向STUN Server发送Binding request请求自身的外网地址,并从STUN Server回包的MAPPED-ADDRESS中得到各自的外网地址;

     

    3)A、B收集完内外网ICE Candidate,并通过Signal Server发送给对方;

     

    4)双方开始做NAT穿越,互相给对方的ICE Candidate发送STUN Binding Request;

     

    5)NAT穿越成功,A、B之间的P2P连接建立,进入媒体互通阶段。在这个过程中,我们看到了有三个核心的部分,SDP协商、ICE Candidate交换、Stun Binding Req/Res的连通性检查。

     

    WebRTC网关连接建立流程

     

    在了解了标准WebRTC的建连流程以后,我们来看看WebRTC客户端如何与网关建连。

     

    首先,我们网关的Media Server拥有公网IP,因此Server就不需要通过Stun Server收集自身的公网IP。WebRTC客户端先与网关Signal Server协商SDP,包括ICE Candidate,Media Server分配IP和端口作为网关的ice candidate发送给客户端。因为网关是公网IP,所以客户端向这个IP发送STUN Binding Request会被服务器收到, 并回复Response。接着客户端与网关媒体服务器进行DTLS握手与秘钥协商,在此基础上进一步进行SRTP的音视频通信。至此,WebRTC客户端与网关服务器建连成功。

     

     

     

    WebRTC网关服务器媒体架构

     

    最简的服务器端端口方案是我们可以为每个客户端分配一个端口,服务器上使用这个端口区分每个用户,就像图里描述的A、B、C、D四个人在WebRTC网关服务器上分别对应UDP端口10001~1004。这种方案逻辑上很简单,很多开源的服务器都采用这个方案,如janus。另外一个原因是使用了libnice库在服务器上来和客户端做ice建连,类似的做法都是采用多端口的架构。

     

    那么多端口有什么不足呢?

     

    1)很多的网络出口防火墙对能够通过的UDP端口是有限制的;

     

    2)对于服务端来说开辟这么多端口,安全性本身也有一定的问题,特别是运维同学,更是拒绝;

     

    3)开辟这么多的端口在Server端上,端口的开销和性能均有一定的影响。那能否用单端口?使用单端口前,核心要解决的一个问题是:如何区分每一个RTP/RTCP包是属于哪一个WebRTC客户端。

     

    为了解决这个问题,我们需要使用一些小技巧。首先,有几个基础知识点我们先了解一下。如下图:

     

    1)SDP offer和answer里配置的ice-ufrag字段里面内容,原来是用来作为stun数据包的鉴权的,因此STUN Binding Request里面的USERNAME字段就是由上Offer和answer的ice-ufrag内容拼接而成。

    2)发送STUN Binding Request的客户端本地udp fd,与ice建连成功后发送媒体数据的udp fd是同一个,也就是说Server上看到的ip port是同一个。

     

    有了上面的背景知识,你肯定已经大致有一个方案了。我们来看看实现细节是怎么样的:

     

    1)在服务器给Web端的SDP Answer中设置 ice-ufrag为roomid/userid,其中RoomID和UserID是通话业务层分配的内容,用于区分每对通话以及参与者。接着做Ice candidate协商,Web端开始做连通性检测,也就是stun binding request里的USERNAME为SDP local和remote的ice-ufrag指定内容。

    2)服务器收到stun binding request的客户端ip和端口,并正常回stun binding response。3)记录客户端地址与用户的信息的映射关系。

    4)服务器收到一个rtp/rtcp媒体数据包,通过包的源ip和端口,查询映射表就可以识别这个包属于哪个用户。

    WebRTC客户端使用PeerConnection来表示不同的媒体连接,接下来我们将介绍如何选择PeerConnection的方案。

    在线体验单端口直播与一对一视频通话:https://github.com/starrtc/android-demo

    展开全文
  • 网关服务器

    万次阅读 2012-03-13 21:19:16
    今天只讨论游戏服务器的网关服务器。  1.转发  转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台等服务器的数据转发给客户端,接收客户端的数据,把消息转发给相应的服务器。很多时候,我们需要...

            之前想着要把什么什么给写一下,每次都太懒了,都是想起了才来写一下。今天只讨论游戏服务器的网关服务器。

           1.转发

           转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台等服务器的数据转发给客户端,接收客户端的数据,把消息转发给相应的服务器。很多时候,我们需要将消息发给所有的用户,如果让会话服务器来执行这个功能,如果这个时候服务器很负载很大,有2万人在线,那么就得发两万条消息给客户端,这个肯定是不允许的,所有我们将需要转发的消息给网关,如果每个 网关挂了4000人,那么网关就将这条消息发给每个用户了。当然了,在游戏设计时,特别是策划在活动制作时,必须尽量避免群发消息的功能。即使要发,我们将这2万人分组,然后分时分组发送。一般情况下,网关与场景是多对多的关系,和其他服务器都是1对多的关系

           2.心跳

    网关定时发送心跳给连接在这个网关上的所有客户端,保证客户端与网关的连接,如果某个客户端掉线了,那么网关就通知各个服务器去做玩家的下线处理

           3.负载均衡

           多网关来支持平衡游戏负载,当然负责负载均衡的模块可以放在一个管理所有服务器的Super服务器,

           4.账号管理

          玩家删除账号,更改名字等操作,只需要登录到网关,然后与数据服务器交互就行了,然后还有一个处理就是,对玩家的名字/聊天的消息进行关键词过滤

          5.维护玩家登陆信息

          玩家发来登陆操作时,去数据库服务器寻找账号,匹配密码,然后连接到场景服务器上。很多公司都使用了统一的账号平台来管理所有的游戏账号,这时,玩家登陆游戏时,发一条登陆消息,先登陆到平台,平台验证账号的正确性,然后去相应的游戏服务器,分配一个网关,把这个网关的ip/端口这些发给客户端,客户端去连接这个网关,当然中间的规则,就自己设定了。

          现在做的是端游,等这边结束了,希望能尝试做一个页游。

          明天来写会话服务器。

    展开全文
  • 一种应用于物联网的内网服务器端口映射与网关动态IP地址解析方法,陈枫,尹长川,本文基于动态域名服务技术和端口映射技术,提出了一种应用于物联网数据采集系统中实现内网服务器端口映射和网关动态IP地址解析的�
  • 网关服务器 .

    千次阅读 2013-01-08 00:14:35
    今天只讨论游戏服务器的网关服务器。  1.转发  转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台等服务器的数据转发给客户端,接收客户端的数据,把消息转发给相应的服务器。很多时候,我们需要...
       之前想着要把什么什么给写一下,每次都太懒了,都是想起了才来写一下。今天只讨论游戏服务器的网关服务器。 
    

           1.转发

           转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台等服务器的数据转发给客户端,接收客户端的数据,把消息转发给相应的服务器。很多时候,我们需要将消息发给所有的用户,如果让会话服务器来执行这个功能,如果这个时候服务器很负载很大,有2万人在线,那么就得发两万条消息给客户端,这个肯定是不允许的,所有我们将需要转发的消息给网关,如果每个 网关挂了4000人,那么网关就将这条消息发给每个用户了。当然了,在游戏设计时,特别是策划在活动制作时,必须尽量避免群发消息的功能。即使要发,我们将这2万人分组,然后分时分组发送。一般情况下,网关与场景是多对多的关系,和其他服务器都是1对多的关系

           2.心跳

    网关定时发送心跳给连接在这个网关上的所有客户端,保证客户端与网关的连接,如果某个客户端掉线了,那么网关就通知各个服务器去做玩家的下线处理

    展开全文
  • QQ西游服务器分析01-网关服务器

    千次阅读 2015-03-15 22:33:35
    网关服务器打开客户端监听端口 s6.网关服务器开始转发“管理器”和客户端的数据 *网关服务器完全不理解来自客户端的数据(对客户端而言是透明的) *网关服务器和“管理器”之间存在协议栈,
  • 客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器服务器:为客户端提供服务、数据、资源的机器请求:客户端向服务器索取数据响应:服务器对客户端请求作出反应,一般是返回给客户端数据 screenshot.png ...
  • 服务器托管用户在处理端口的时候往往容易将端口映射以及端口转发处理错误。那么这两个该如何处理呢?  一、什么是端口映射  端口映射:端口映射就是将内网中的主机的一个端口映射到外网主机的一个端口,提供相应...
  • NAT网关添加端口映射

    万次阅读 2009-11-17 17:22:00
    BitComet自动端口映射 BitComet 选项 -> 网络连接中设置允许使用UPnP自动端口映射。公网用户不需要进行端口映射,建议关闭。 注意:用户所使用的宽带路由器/ADSL Modem必须支持UPnP功能,设备是否具备此功能可查阅...
  • 电信A8网关-瑞士康达A8-8 端口映射,电信内部资料,其实很简单,但是在静态IP配置局域网内部服务器很有用,省却了再购置一台路由。
  • 这是因为没有进行虚拟服务器端口映射)设置端口映射功能可以让内网的服务器映射到外网上,从而实现服务器的对外开放。本文就将介绍TP-LINK路由器用户的端口映射设置方法。本文以某小型企业需要将网页服务器对外...
  • 1、确认内网服务器的ip和端口,比如我用的tomcat默认端口是8080,IP是192.168.1.199 2、打开路由器管理界面,192.168.1.1 ,admin12312/admin13221312是默认账号密码 3、找到虚拟服务器,我的是在TL-ER6110,在...
  • 服务器端口大全

    千次阅读 2014-05-22 20:29:10
    服务器端口大全 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 ...
  • 服务器端口

    千次阅读 2013-02-21 09:27:16
     据专家们分析,服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。这是那么多黑客程序都可以采用某种方法,定义出一个特殊的端口来达到入侵的目的的原因所在。为了...
  • 昨天联系电信更换千兆光猫,师傅来换了个天翼网关,这个天翼网关是自己主动拨号,直接导致我软路由里搭建的服务在广域网上不能访问了(虽然天翼网关可以设置端口转发,但是就是个摆设,设置端口也是无法转发的) ...
  • 网关服务器 使用netty构建的网关服务器有助于通过单个通道将多个客户端请求排队到单个服务器 网关基于netty 4.0编写。 网关维护与后端服务器的单个静态连接。 当与后端的连接断开时,网关尝试立即重新连接。 多个...
  • 案例需求——公司选用RHEL5服务器作为网关,为了有效节省网络带宽、提高局域网访问Internet的速度,需要在网关服务器上搭建代理服务,并结合防火墙策略实现透明代理,以减少客户端的重复设置工作 需求描述使用...
  • 利用Squid搭建透明代理网关服务器

    千次阅读 2011-12-30 22:53:27
    ——公司选用RHEL5服务器作为网关,为了有效节省网络带宽、提高局域网访问Internet的速度,需要在网关服务器上搭建代理服务,并结合防火墙策略实现透明代理,以减少客户端的重复设置工作     需求描述 使用...
  • [Linux]CentOS网关服务器配置

    千次阅读 2011-12-27 09:45:30
    1. 网关服务器上两张网卡: eth0 =》内网172.18.1.240 eth1=》外网211.139.169.X 2. 客户端机: 172.18.1.x 3. 网关服务器配置: 打开IP转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 建立nat ...
  • 什么是终端服务网关服务器

    千次阅读 2010-07-09 15:26:00
    终端服务网关(TS 网关服务器是这样一种网关,它允许授权的用户从具有 Internet 连接的任何计算机连接到公司网络中的远程计算机。TS 网关使用远程桌面协议 (RDP) 和 HTTPS 协议帮助创建一个更安全的加密连接...
  • 一、客户端:2D绘制引擎、3D绘制引擎绘制游戏世界的实时画面 二、服务器端:负责响应所有客户端的连接请求和游戏逻辑... 1.11 网关服务器网关服务器的主要职责是将客户端和游戏服务器隔离,  客户端程序直接

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,270
精华内容 48,108
关键字:

网关服务器端口设置