Linux服务器利用防火墙iptables策略进行端口跳转的方法
两台不同服务器转发
打开端口转发的功能
首先开启IP转发功能,默认是关闭的。
临时修改:
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
修改过后就马上生效,但如果系统重启后则又恢复为默认值0。
永久修改:
vi /etc/sysctl.conf # 找到下面的值并将0改成1 net.ipv4.ip_forward = 1
# sysctl -p
(使之立即生效)
默认值0是禁止ip转发,修改为1即开启ip转发功能。
配置端口转发
假设用户访问115.29.112.119:8804
时我想让它转发到42.99.16.84:8890
首先要在服务器上开放8804端口
修改配置文件:vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8804 -j ACCEPT
或者命令行执行并保存
[root@localhost sysconfig]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8804 -j ACCEPT [root@localhost sysconfig]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ]
端口转发
方法一:命令行执行
需要保存,不然只是即时生效,已重启防火墙规则就会被清空
iptables -t nat -A PREROUTING -d 115.29.112.119
-p tcp --dport 8804
-j DNAT --to-destination 42.99.16.84:8890
iptables -t nat -A POSTROUTING -d 42.99.16.84
-p tcp --dport 8890
-j SNAT --to-source 115.29.112.119
不需要更改配置文件就保存的命令:service iptables save
方法二:直接保存到配置文件
修改/etc/sysconfig/iptables配置文件,加入规则
-A PREROUTING -d 115.29.112.119
-p tcp --dport 8804
-j DNAT --to-destination 42.99.16.84:8890
-A POSTROUTING -d 42.99.16.84
-p tcp --dport 8890
-j SNAT --to-source 115.29.112.119
配置完重启防火墙:
1.systemctl restart iptables(centos7);2.service iptables restart(centos7以前版本)
查看配置好的策略
iptables -t nat --list --line-numbers
本机端口转发
如果只需要在本机间不同的端口转发就比较容易了,比如 访问 http://ip:8888 我想返回 http://ip:6666 的内容,配置如下:
[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 8888 -j REDIRECT --to-ports 6666 [root@localhost ~]# service iptables save [root@localhost ~]# service iptables restart
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解Linux查看程序端口占用情况
今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用. 使用命令: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令: netstat –apn 查看所有的进程和端口使用情况.发现下面的进程列表,其中最后一栏是PID/Program name 发现8080端口被PID为9658的Java进程占用. 进一步使用命令: ps -aux | grep java 或者直接: ps -aux | grep pid 查看 就可以明确知道808
-
详解Linux 查看服务器开放的端口号
在讨论这个问题前,我们先来了解一下物理端口.逻辑端口.端口号等计算机概念. 端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL Modem.集线器.交换机.路由器上用 于连接其他网络设备的接口,如RJ-45端口.SC端口等等.逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等.由于物理端口和逻辑端口数量较多,为了对端
-
Linux/window下怎样查看某个端口被哪个程序/进程占用
Windows: C:/Users/ewanbao>netstat -aon|findstr "123" TCP 127.0.0.1:55123 0.0.0.0:0 LISTENING 5092 TCP 127.0.0.1:55123 127.0.0.1:55124 ESTABLISHED 5092 TCP 127.0.0.1:55124 127.0.0.1:55123 ESTABLISHED 5092 UDP 0.0.0.0:123 *:* 1416 UDP [::]:123
-
linux下防火墙开启某个端口号及防火墙常用命令使用(详解)
1.永久性生效,重启后不会复原 开启:chkconfigiptables on 关闭:chkconfigiptables off 2.即时生效,重启后复原 重启防火墙 方式一:/etc/init.d/iptables restart 方式二:service iptables restart 关闭防火墙: 方式一:/etc/init.d/iptables stop 方式二:service iptables stop 启动防火墙 方式一:/etc/init.d/iptables start 方式二:
-
Linux下如何对端口流量进行统计
在不修改源代码的情况下对程序暴露端口流量进行监控统计,可以利用Linux中自带的Iptable添加简单的规则让其起到端口流量统计的作用.但是需要注意的是在服务器重启.Iptable服务重启的时候统计数据会被重置清零. 添加需要统计的端口 1.输入监控 下面示例是监控目标端口是8080的输入流量 --dport(destination port 的缩写) iptables -A INPUT -p tcp --dport 8080 2.输出监控 下面示例是监控来源端口是8080的输出流量 --spo
-
查看linux中某个端口(port)是否被占用的方法
1.使用lsof lsof -i:端口号查看某个端口是否被占用 2.使用netstat 使用netstat -anp|grep 80 以上这篇查看linux中某个端口(port)是否被占用的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
linux下mysql开启远程访问权限 防火墙开放3306端口
开启mysql的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法 1.登陆mysql mysql -u root -p 2.修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将l
-
linux 监视端口是否正常的shell脚本
复制代码 代码如下: #!/bin/bash port="80″ restart="/etc/init.d/httpd restart" EMAIL="/bin/echo selboo | mutt -s "重新启动httpd" root@selboo.com.cn" netstat -ln |awk '/^tcp/ {print $4}' |grep -q ":$port$" || { #reboot httpd
-
Linux下查看端口占用进程号,程序名的方法
linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # lsof -i:859 运行后的结果: COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 24907 root 31u IPv4 248905027 TCP *:859 (LISTEN) 由以上我们知道了859端口被进程号为24907的进程占用了, 是个java进程. 2. 查看进程
-
Linux服务器利用防火墙iptables策略进行端口跳转的方法
两台不同服务器转发 打开端口转发的功能 首先开启IP转发功能,默认是关闭的. 临时修改: [root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 修改过后就马上生效,但如果系统重启后则又恢复为默认值0. 永久修改: vi /etc/sysctl.conf # 找到下面的值并将0改成1 net.ipv4.ip_forward = 1 # sysctl -p(使之立即生效) 默认值0是禁止ip转发,修改为1即开启ip转发功能. 配置端口转
-
linux服务器下通过iptables+Denyhost抵御暴力破解的配置方法
使用iptables 现在每分钟连接ssh的次数 #允许本地环回接口访问 iptables -A INPUT -i lo -j ACCEPT #对已经建立的所有链接都放行 iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT #每分钟对ssh的新连接只允许两个,已建立的连接不限制 复制代码 代码如下: iptables -A INPUT -p tcp –dport 22 -m limit –limit 2/minute –limit-bu
-
详解Linux服务器最多能开放多少个端口
目录 端口相关的概念: 端口与服务的关系 1:nmap工具检测开放端口 2:netstat 工具检测开放端口 3:lsof 工具检测开放端口 4:ss 工具检测开放端口 5: 使用telnet检测端口是否开放 6:netcat工具检测端口是否开放 关闭端口和开放端口 端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL Modem.集线器.交换机.路由器上用 于连接其他网络设备的接口,如RJ-45端口.SC端口等等.逻辑端口是指
-
Linux中在防火墙中开启80端口方法示例
linux如果刚安装好防火墙时我们常用的端口是没有增加的,也就是说不能访问,那么要怎么把常用端口增加到防火墙通过状态呢,下面我们以80端口为例子吧. 最近自己在学习Linux.搭建一个LNMP环境.在测试时一切都好.然后重启Linux后.再次访问网站无法打开.最终原因是在防火墙中没有加入 80 端口的规则.具体方法如下: 在CentOS下配置iptables防火墙,是非常必要的.来我们学习如何配置!,其它版本一下: 1.打开iptables的配置文件: 代码如下 vi /etc/sysconfi
-
linux socket通讯获取本地的源端口号的实现方法
关于TCP IP网络通讯的资料非常多,TCP IP通过IP数据包模式进行端对端通讯.典型的TCP数据包如下 可以看到数据包包含了源端口号和目的端口号,客户端socket向服务端发起连接时,系统会给socket随机分配一个源端口号,我们可以通过getsocketname来获取连接成功的socket的原端口信息. 函数原型 #include <sys/socket.h> int getsockname(int sockfd, struct sockaddr *addr, socklen_t *ad
-
Tomcat在Linux服务器上的BIO、NIO、APR模式设置方法
一.BIO.NIO.AIO 先了解四个概念: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写). 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API). 阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成才返回). 非阻塞 : 柜台取款,取个号,然后坐在椅子上做其它事,等号广播会通知你办理,没到
-
linux下利用shell在指定的行添加内容的方法
在linux的一些配置中总会要进行某个文件中的某行的操作,进行增加,修改,删除等操作. 而这里主要是进行的是指定的行添加数据的操作: 脚本如下: sed -i '3i asdf 1.sh' 1.sh 这个就是在1.sh中的第3行加入asdf的数据. 首先看1.sh内容如下: 执行sed命令如下: 这个就是一个比较简单的操作,比较实用. 以上这篇linux下利用shell在指定的行添加内容的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
linux vps服务器常用服务iptables策略
vps服务器裸奔在公网上,总感觉有点不安全,没办法总得整点措施来加固下服务器呀,安全第一.linux系统自带防火墙必须要好好利用起来,可是我有一年多没写过防火墙策略了,该忘的都忘了,不该忘的也都忘得差不多了,看笔记,找找感觉. 目前这台vps上开启的服务有ssh,ftp,pptpd,shadowsocks等. 防火墙策略是默认策略是DROP的. 防火墙策略配置: [root@vultr scripts]# cat iptables.sh #/bin/bash #date:2017-04-10 #
-
阿里云linux服务器上使用iptables设置安全策略的方法
公司的产品一直运行在云服务器上,从而有幸接触过aws的ec2,盛大的云服务器,最近准备有使用阿里云的弹性计算(云服务器).前两种云服务器在安全策略这块做的比较好,提供简单明了的配置界面,而且给了默认的安全策略,反观阿里云服务器,安全策略需要自己去配置,甚至centos机器上都没有预装iptables(起码我们申请两台上都没有),算好可以使用yum来安装,安装命令如下: yum install -y iptables iptables安装好后就可以来配置规则了.由于作为web服务器来使用,所以对外
-
Java远程连接Linux服务器并执行命令及上传文件功能
最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记. 此种连接方法中有考虑到并发问题,在进行创建FTP连接的时候将每一个连接对象存放至 ThreadLocal<Ftp> 中以确保每个线程之间对FTP的打开与关闭互不影响. package com.test.utils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileFilter; import java.io.FileIn
随机推荐
- 【Linux】VMware虚拟机中如何配置静态IP详解
- 浅析正则表达式-替换原则(.NET) 图文
- 用户注册常用javascript代码
- 学习ExtJS table布局
- IOS图片的原生(Graphics)详解及实例
- jquery库文件略庞大用纯js替换jquery的方法
- C#判断字符串是否是数字(实例)
- Python编程实现及时获取新邮件的方法示例
- jsp中使用frameset框架 边框固定不让更改边框的大小
- Docker 教程之基本概念(镜像,容器,仓库)详解
- mysql关联子查询的一种优化方法分析
- 闭合浮动元素超级简单的方法
- linux中Jetty的安装和配置方法
- 如何判断a、b、c三个字段同时为0则不显示这条数据
- Android从相册选择图片剪切和上传
- JsEasy简介 JsEasy是什么?与下载
- canvas实现粒子时钟效果
- 跟我学习javascript的函数和函数表达式
- Android Rreact Native 常见错误总结
- Linux的常用网络命令