对端口映射(portmap)功能迷惑

ChinaOS 2017-11-10 04:02:38
看到一个linux系统,里面做了个端口映射,即把外部访问本机某个tcp端口(例如88)都映射为8888端口,我有如下困惑:
1、该设备不是路由设备,外部直接访问它的端口,自己却映射为另一个端口(用iptables),这不是吃饱撑了吗?映射和不映射有什么区别?
2、假设外部访问本机88端口的都转给监听8888端口那个服务端程序,那么该服务端程序应答的报文的端口肯定是8888,那么客户端会如何呢?客户端本来期望从88端口那里回数据,怎么来了8888端口的数据呢?客户端能收到服务端的应答数据吗?

期望各位给本菜鸟解惑一下。
...全文
489 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰瞬若封 2017-11-30
  • 打赏
  • 举报
回复
端口转发是有指回原始端口的配置的,不然就没有意义了.
常书 2017-11-15
  • 打赏
  • 举报
回复
建议楼主抓包分析看看,端口映射好以后,发出去的包应该还是88端口的
cqyy725 2017-11-14
  • 打赏
  • 举报
回复
建议你看看iptables的端口转发吧
端口映射是一个服务器,将RPC程序号转换为DARPA的协议端口号。在使用RPC调用时它必须运行。   portmap进程的主要功能是把RPC程序号转化为Internet的端口号。   当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能   如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。   但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。   简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧