首页 > 系统相关 >linux服务端口转发

linux服务端口转发

时间:2023-12-15 14:04:57浏览次数:36  
标签:linux -- cmd 端口 firewall 转发 80

在执行转发操作之前,确定需要转发的端口和目标主机:首先,确定需要转发的端口和目标主机。例如,如果需要将端口80上的请求转发到192.168.0.100的80端口,则需要配置转发规则。常用的转发方法有如下6中

  • iptables转发 --CentOS 7.0 以下使用
  • firewall转发 --CentOS 7.0以上使用
  • rinetd转发   --需安装
  • ncat转发     --yum install nmap-ncat -y
  • socat转发    --yum install -y socat
  • nginx转发    --需安装

以下详细介绍前两中转发(防火墙转发)的实现方法,其它的几种转发会后续继续介绍。

一、iptables转发 --CentOS 7.0 以下使用

  1. 系统开启路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
  1. 规则设置
# iptables -t nat -A PREROUTING -p tcp –dport 2201 -j DNAT –to-destination 10.6.1.114:22
# iptables -t nat -A POSTROUTING -p tcp -s 10.6.1.114 –sport 22 -j SNAT –to-source 42.162.6.44:2201

3.保存iptables

#service iptables save

4.重启iptables

#service iptables restart

iptables的4个表分别是:

filter(过滤):数据包过滤/拦截,可以包含INPUT、FORWARD、OUTPUT这3个内置chain。

nat(地址转换):IP地址或端口号转换,可以包含PREROUTING、OUTPUT、POSTROUTING 3个内置chain,nat table在会话建立时会记录转换的对应关系,同一会话的回包和后续报文会自动地址转换,这是因为nat使用了ip_conntrack模块。

mangle(包管理):用来修改IP报文,可以包含PREROUTING、OUTPUT、INPUT、FORWARD、POSTROUTING 5个内置chain。

raw:此表的优先级高于ip_conntrack模块和其它的table,主要用于将有会话状态的连接(比如tcp)的数据包排除在会话外。可以包含POSTROUTING、OUTPUT两个内置chain。

二、firewall转发 --CentOS 7.0以上使用

Firewalld是Linux系统上的一种动态防火墙管理工具,Firewalld的主要功能是管理网络连接和防止未经授权的访问。它可以对入站和出站流量进行管理,可以控制端口、服务和网络协议的访问权限,也支持NAT(网络地址转换)和端口转发等高级功能。

1、firewalld的基本使用

启动:systemctl start firewalld
查看状态:systemctl status firewa11d
停止:systemctl disable firewalld
禁用:systemctl stop firewalld
重启: systemctl restart firewa11d
开机自启动:systemctl enable firewalld

2、配置firewalld-cmd

运行firewall-cmd --list-all查看基础配置信息:

[root@localhost ~]# firewall-md --list-all
 public
 target : default
 icmp-block-inversion: no
 interfaces:
 sources:
 services: ssh dhcpv6-client
 ports : 3128/tcp 5432/tcpprotocols:
 masquerade: no
 forward-ports :
 source-ports :
 icmp-blocks :
 rich rules:
 public (default,active):表示 public区域是默认区域(当接口启动时会自动黑认〉,并且它是活动的。
 interfaces : ens33列出了这个区域上关联的接口。
 sources :列出了这个区域的源。现在这里什么都没有,但是,如果这里有内容,它们应该是这样的格式xxx.xXX.XX×.xXx/xx。
 services: dhcpv6-client ssh 列出了允许通过这个防火墙的服务。可以通过运行firewall-cmd --get-services得到一个防火墙预定义服务的详细列表。
 ports:列出了一个允许通过这个防火墙的目标端口。它是用于你需要去允许一个没有在 firewalld 中定义的服务的情况下。
 masquerade: no表示这个区域是否允许 IP伪装。如果允许,它将允许工P转发,它可以让你的计算机作为一个路由器。
 forward-ports:列出转发的端口。
 icmp-blocks:阻塞的icmp流量的黑名单。
 rich rules:在一个区域中优先处理的高级配置。
 default:是目标区域,它决定了与该区域匹配而没有由上面设置中显式处理的包的动作。

运行以下命令理解firewall规则用法:

查看所有打开的端口: firewall-cmd --zone=public --list-port
 更新防火墙规则: firewall-cmd --reload
 列出所有区域: firewall-cmd --get-zones
 查看区域信息:firewall-cmd --get-active-zones
 设定默认区域,立即生效:firewall-cmd --set-default-zone=public
 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=ens33
 查看所有规则: firewall-cmd --list-all
 通过以下两种手段可以进行永久修改:
 firewall-cmd --permanent <some modification>
 firewall-cmd --reload

3、常见使用场景

拒绝所有包:firewall-cmd --panic-on
 取消拒绝状态:firewall-cmd --panic-off
 查看是否拒绝: firewall-cmd --query-panic
 
 暂时开放ftp服务:firewall-cmd --add-service=ftp
 永久开放ftp 服务:firewall-cmd --add-service=ftp --permanent
 查询服务的启用状态:firewall-cmd --query-service ftp
 开放mysq1端口:firewall-cmd --add-service=mysq1
 阻止http端口:firewall-cmd --remove-service=http
 查看开放的服务:firewall-cmd --list-services
 查看对应规则库文件: cd /usr/lib/firewalld/services
 
 开放通过tcp访问3306: firewall-cmd --add-port=3306/tcp
 阻止通过tcp访问3306: firewall-cmd --remove-port=80tcp
 永久开放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
 查看80端口: firewall-cmd --zone=public --query-port=80/tcp
 查看所有开放端口: firewall-cmd --zone=public --list-ports
 删除80端口: firewall-cmd --zone=public --remove-port=80/tcp --permanent
 开放postgresq1服务: firewall-cmd --add-service=postgresq1 --permanent
 
 允许http服务通过1分钟: firewall-cmd --zone=public --add-service=http --timeout=1m,这个 timeout选项是一个以秒(s)、分(m)或小时(h)为单位的时间值。
 
 重载防火墙: firewall-cmd --reload
 检查防火墙状态: firewall-cmd --state
 让设定生效:systemct1 restart firewa1ld
 检查设定是否生效: iptables -L -n l grep 21或 firewall-cmd --list-a11

4、端口转发

端口转发可以将指定地址访问指定的端口时,将流星转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。 如果配置好端口转发之后不能用,可以检查下面两个问题:

比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了

其次检查是否允许伪装IP,没允许的话要开启伪装lP

开启伪装IP:

firewall-cmd --add-masquerade --permanent
#将8888端口的流里转发至80
 firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80
 firewall-cmd --remove-forward-port=port=8888:proto=tcp:toport=80
 
 #开启伪装IP
 firewall-cmd --query-masquerade  #检查是否允许伪装IP
 firewall-cmd --add-masquerade  #允许防火墙伪装IP
 firewall-cmd --remove-masquerade  #禁止防火墙伪装IP
 
 #将8888端口的流量转发至101.37.65.91的80端口
 firewall-cmd --add-forward-port=port=8888: proto=tcp:toaddr=101.37.65.91:toport=80

标签:linux,--,cmd,端口,firewall,转发,80
From: https://blog.51cto.com/u_16421711/8840467

相关文章

  • Linux配置时间同步 - chrony
    一、chrony简介chrony是一款开源的NTP时间同步软件,主要用于Unix-like计算机系统(如Linux、BSD和macOS)来提供高精度的时间同步。Chrony的设计注重性能和可靠性,具有低延迟、低CPU占用率、低内存消耗等优点。chrony由两个程序组成,chronyd(服务器端)和chronyc(客户端)chronyd:后台运行的守护......
  • Linux防火墙端口设置策略
    #当我们在服务器上部署好我们的环境后,一定要检查一下防火墙的端口策略;否则客户端无法连接。#查看防火墙状态systemctlstatusfirewalld#查看防火墙设已开放的端口#临时端口(默认为空)firewall-cmd--list-ports#永久开放端口(默认为空)firewall-cmd--list-ports--per......
  • linux 学习笔记
    计算机硬件软件体系 冯诺依曼体系结构1.计算机处理的数据和指令一律用二进制数表示2.顺序执行程序3.计算机硬件由运算器、控制器、存储器、输入设备、输出设备五部分组成计算机硬件组成、1.输入设备 键盘鼠标2.输出设备 显示器,音响3.存储器 1)RAM(randomaccessmemory)随......
  • Linux部署elasticsearch集群
    文章目录一、集群规划二、安装前准备(所有节点操作)创建数据目录修改系统配置文件/etc/sysctl.conf创建用户组设置limits.conf三、初始化配置(在节点1上操作)下载安装包解压安装包修改jvm.options文件下配置的所占内存修改集群配置文件elasticsearch.yml将安装包传到另外两个节点......
  • Linux下获取文件名
    linux下一切皆文件1、获取指定路径下文件或目录ls-la/usr/local/|grepxxx|head-n1|awk'{print$9}'xxx:替换为要匹配的文件名或目录命令解释:ls-la/usr/local/:列出 /usr/local/ 目录下的所有文件和子目录,包括隐藏文件(以.开头的文件)。grepxxx:从前面命令......
  • 软件测试/人工智能|Linux常见面试问题讲解
    前言现在行业对于测试工程师的要求越来越高,除了要会自动化测试,会数据库操作,现在对于linux命令的要求也越来越高了,因为很多时候,测试环境以及持续集成持续交付需要用到越来越多的Linux命令,本文就来给大家介绍一下面试常见的Linux问题以及基本概念。基础概念Linux的起源和特点Li......
  • Linux tracepoint使用和理解
    参考:如何使用TRACE_EVENT()宏来创建跟踪点1.如何查看tracepoint/sys/kernel/debug/tracing/events/通过perflisttracepoint查看2.tracepoint理解因此tracepoint方式如下:#undefTRACE_SYSTEM#defineTRACE_SYSTEMxhr_test#if!defined(_TRACE_TE_TEST_H)||def......
  • 嵌入式linux下web服务器搭建(转载)
    一、移植编译生成boa二进制文件Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。首先下载......
  • Linux服务器环境安装mysql
    背景1、安装环境:kvm虚拟机2、运行环境:linux3、架构:x864、安装mysql版本:mysql-5.71、安装准备#Mysql官网https://downloads.mysql.com/archives/community/#下载安装包wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2、安装m......
  • 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    联系:1.Linux的内核源代码和Linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。2.基本上可以分为三大系类:Slackware、RedHat、Debian3.每个系列最具代表性的商业服务器级的发行版,分别是SUSELinuxEnterprise;RedHatEnterpriseLinux;UbuntuServ......