Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iptables之NAT端口转发设置

iptables之NAT端口转发设置

作者头像
洗尽了浮华
发布于 2018-01-22 08:29:50
发布于 2018-01-22 08:29:50
3.7K0
举报
文章被收录于专栏:散尽浮华散尽浮华

背景: 服务器A:103.110.114.8/192.168.1.8,有外网ip,是IDC的一台服务器 服务器B:192.168.1.150,没有外网ip,A服务器是它的宿主机,能相互ping通 服务器C:192.168.9.120,是公司的一台服务器,能上网。 服务器C可以直接ssh登陆A服务器,但是不能直接登陆服务器B,因为它们处在两个不同的局域网内。 现在要求能从服务器C上ssh登陆服务器B,并且做ssh无密码信任跳转关系。 这就需要用到iptables的NAT端口转发功能了~~~~~ 思路: 让服务器C先访问服务器A上的20022端口,然后NAT转发到服务器B的ssh端口(22端口) ---------------------------------------------------------------------------------------------- 下面是在宿主机A上(192.168.1.8)的操作: 1)先开启ip路由转发功能 [root@linux-node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 或者 [root@linux-node1 ~]# cat /etc/sysctl.conf .......... net.ipv4.ip_forward = 1 [root@linux-node1 ~]# sysctl -p 2)设置iptables的NAT转发功能 [root@linux-node1 ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 20022 -j DNAT --to-destination 192.168.1.150:22 [root@linux-node1 ~]# iptables -t nat -A POSTROUTING -d 192.168.1.150/32 -p tcp -m tcp --sport 22 -j SNAT --to-source 192.168.1.8 [root@linux-node1 ~]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 20022 -j ACCEPT [root@linux-node1 ~]# service iptables save [root@linux-node1 ~]# service iptables restart

nat端口转发设置成功后,/etc/sysconfig/iptables文件里要注释掉下面两行!不然nat转发会有问题!一般如上面在nat转发规则设置好并save和restart防火墙之后就会自动在/etc/sysconfig/iptables文件里删除掉下面两行内容了。 [root@linux-node1 ~]# vim /etc/sysconfig/iptables .......... #-A INPUT -j REJECT --reject-with icmp-host-prohibited         //这两行最好是注释掉。在一般的白名单设置中,如果这两行不注释,也会造成iptables对端口的设置无效 #-A FORWARD -j REJECT --reject-with icmp-host-prohibited [root@linux-node1 ~]# service iptables restart ---------------------------------------------------------------------------------------------- 下面是在服务器B上(192.168.1.150)的操作: 1)首先关闭防火墙 [root@dev-new-test1 ~]# service iptables stop 2)设置网关为宿主机的内网ip(内网网关地址一定要保持和宿主机内网网关地址一致!如果没有内网网关地址,那么就把它的网关设置成宿主机的内网ip地址!) [root@dev-new-test1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 ...... GATEWAY=192.168.1.8 ...... [root@dev-new-test1 ~]# /etc/init.d/network restart [root@dev-new-test1 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.1.8 0.0.0.0 UG 0 0 0 eth0 ---------------------------------------------------------------------------------------------- 最后在公司服务器C上测试:看看能否登陆到虚拟机上 [root@redmine ~]# ssh -p20022 103.110.114.8 The authenticity of host '[103.10.86.8]:20022 ([103.10.86.8]:20022)' can't be established. RSA key fingerprint is f8:a9:d1:cb:52:e8:8b:ed:8b:d2:1a:86:06:1a:fd:0f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[103.10.86.8]:20022' (RSA) to the list of known hosts. root@103.110.114.8's password: [root@dev-new-test1 ~]# ifconfig                          #查看,已经成功登陆进来了! eth0 Link encap:Ethernet HWaddr FA:16:3E:9D:F3:17 inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::f816:3eff:fe9d:f317/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:27047404 errors:0 dropped:0 overruns:0 frame:0 TX packets:6401069 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:67605283704 (62.9 GiB) TX bytes:566935277 (540.6 MiB)

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:87025 errors:0 dropped:0 overruns:0 frame:0 TX packets:87025 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:65978795 (62.9 MiB) TX bytes:65978795 (62.9 MiB)

可以把服务器C的公钥id_rsa.pub内容拷贝到虚拟机上的authorized_keys文件内,这样从C机器就能ssh无密码登陆到虚拟机B上了。 -------------------------------------------------------------------- 下面贴出几个其他转口的转发规则(本机开启ip路由转发,目标机器注意防火墙和网关设置): 本机(192.168.1.7)的19200转发到192.168.1.160的9200 [root@kvm-server conf]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 19200 -j DNAT --to-destination 192.168.1.160:9200 [root@kvm-server conf]# iptables -t nat -A POSTROUTING -d 192.168.1.160/32 -p tcp -m tcp --sport 9200 -j SNAT --to-source 192.168.1.7 [root@kvm-server conf]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 19200 -j ACCEPT

本机(192.168.1.7)的33066转发到192.168.1.160的3306 [root@kvm-server conf]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 33066 -j DNAT --to-destination 192.168.1.160:3306 [root@kvm-server conf]# iptables -t nat -A POSTROUTING -d 192.168.1.160/32 -p tcp -m tcp --sport 3306 -j SNAT --to-source 192.168.1.7 [root@kvm-server conf]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 33066 -j ACCEPT

本机(192.168.1.7)的8880转发到192.168.1.1的8080 [root@kvm-server conf]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8880 -j DNAT --to-destination 192.168.1.160:8080 [root@kvm-server conf]# iptables -t nat -A POSTROUTING -d 192.168.1.160/32 -p tcp -m tcp --sport 8080 -j SNAT --to-source 192.168.1.7 [root@kvm-server conf]# iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 8880 -j ACCEPT

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
43. [HarmonyOS NEXT Row案例十一] 构建智能分页控件:Row组件实现页码与翻页按钮的完美结合
分页控件是数据展示类应用中不可或缺的导航元素,它允许用户在大量数据中进行有序浏览。本教程将详细讲解如何使用HarmonyOS NEXT的Row组件创建一个功能完善的分页控件,实现页码显示与前后翻页按钮的完美结合。
全栈若城
2025/06/02
530
43. [HarmonyOS NEXT Row案例十一] 构建智能分页控件:Row组件实现页码与翻页按钮的完美结合
HarmonyOS NEXT 小说阅读器总结篇之用户体验设计与最佳实践
注意: 总结篇主要以大纲提炼为主,如果想要查看具体的知识点解析可以产看前面的相关教程即可
全栈若城
2025/05/19
970
HarmonyOS应用开发——页面布局技巧
我们将对于多页面以及更多有趣的功能展开叙述,这次我们对于 HarmonyOS 的很多有趣常用组件并引出一些其他概念以及解决方案、页面跳转传值、生命周期、启动模式(UiAbility),样式的书写、状态管理以及动画等方面进行探讨
小帅聊鸿蒙
2024/06/25
4400
HarmonyOS应用开发——页面布局技巧
HarmonyOS_Tab组件
酒楼
2023/12/13
4051
HarmonyOS_Tab组件
HarmonyOS应用开发者基础认证考试(95分答案)
A. FlexAlign.StartB. FlexAlign.SpaceEvenlyC. FlexAlign.EndD. FlexAlign.SpaceBetween
红目香薰
2023/10/11
12.4K0
HarmonyOS应用开发者基础认证考试(95分答案)
ArkUI容器类组件-Tabs组件(Tabs、TabContent)
ArkUI开发框架提供了一种可以通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图的容器组件 Tabs ,它允许包含子组件且子组件只能是 TabContent ,本节笔者介绍一下 Tabs 的简单使用。
小帅聊鸿蒙
2024/09/29
5360
ArkUI容器类组件-Tabs组件(Tabs、TabContent)
鸿蒙NEXT版仿微信聊天App的底部页签栏
上一节我们实现了仿微信的好友列表,那么在微信的主界面,其底部固定放着一排页签栏,点击某个页面,即可迅速切换到对应的界面板块。并且当前页的底部页签高亮显示,方便用户知晓当前处于哪个板块。鸿蒙App采用Tabs组件实现页签栏,使用起来十分灵活。下面详细介绍如何使用Tabs组件实现仿微信App的底部页签栏。
aqi00
2024/11/25
1940
鸿蒙NEXT版仿微信聊天App的底部页签栏
【HarmonyOS之旅】基于ArkTS开发(二) -> UI开发二
学习ArkTS语言ArkTS是HarmonyOS优选的主力应用开发语言,当前,ArkTS在TS基础上主要扩展了声明式UI能力。开发页面
枫叶丹
2025/01/15
2030
【HarmonyOS之旅】基于ArkTS开发(二) -> UI开发二
Harmony 个人中心(页面交互、跳转、导航、容器组件)
  今天是1024,祝各位程序员们,钱多事少离家近,不秃也强bug黄。在上一篇文章中,我们了解了DevEco Studio的主推开发语言ArkTS,并写了一个简单的例子,本文我们将学习另外一个例子来加深我们对于鸿蒙应用开发的理解。
晨曦_LLW
2023/10/26
6.5K6
Harmony 个人中心(页面交互、跳转、导航、容器组件)
实战篇:带着大家用鸿蒙HarmonyOS做项目
本文将会带着大家做一个完整的项目,但是不包含后端,如果需要后端云开发的话,后期再给大家补上
小帅聊鸿蒙
2024/06/24
4670
实战篇:带着大家用鸿蒙HarmonyOS做项目
【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】
该组件构建了一个具有特定布局和功能的界面,包含了搜索栏、轮播图、网格布局展示分类以及推荐好物相关展示等内容。
Rossy Yan
2024/12/24
3070
【HarmonyOS应用开发——ArkTS语言】购物商城的实现【合集】
HarmonyOS NEXT - 页签布局(Tabs)
当页面信息较多时,为了让用户能够聚焦于当前显示的内容,需要对页面内容进行分类,提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换,一方面提升查找信息的效率,另一方面精简用户单次获取到的信息量。
用户9936235
2025/03/31
1880
HarmonyOS 开发实践——基于webView的嵌套滚动
内嵌的ArkUI可滚动容器中的Web组件,接收到滑动手势事件,实现在父组件中嵌套一个web组件可以平滑滚动。
小帅聊鸿蒙
2024/11/09
2140
HarmonyOS Next 实现部门树列表
开发ERP系统的时候经常会用到部门树列表,页面主要由搜索框、顶部部门面包屑、多层级部门列表组成,
儿歌八万首
2025/03/14
970
HarmonyOS Next 实现部门树列表
HarmonyOS 开发实践——自定义tabs导航栏实现切换效果
.onChange()事件和.onTabBarClick()事件都可以获得当前页面的索引。所以设置一个存储当前页面的索引值的变量,在触发事件的时候,将获得的索引值存储到这个变量中即可。
小帅聊鸿蒙
2024/10/31
4400
HarmonyOS实战:Tab顶部滑动悬停功能实现
日常开发过程中,遇到这种 Scroll 嵌套 List 列表滑动顶部悬停的场景十分常见,在鸿蒙开发时也正好实现了这个功能,本篇文章将带你一步步实现 Tab 顶部悬停的效果,建议点赞收藏!
IT小码哥
2025/05/23
930
HarmonyOS Next 自定义TabBar组件
在ArkUI中的Tabs,通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。其中内容是图TabContent作为Tabs的自组件,通过给TabContent设置tabBar属性来自定义导航栏样式。现在我们就根据UI设计的效果图来实现下图效果:
儿歌八万首
2025/03/12
1090
HarmonyOS Next 自定义TabBar组件
154.HarmonyOS NEXT系列教程之3D立方体旋转轮播案例讲解之Tab页实现
全栈若城
2025/03/19
770
HarmonyOS NEXT 实战系列08-案例微博导航设置
使用 PersistentStorage + AppStorage 实现全局UI状态且持久化
用户8181473
2025/03/17
410
【HarmonyOS NEXT】Tabs组件实现类微信(可滑动的)tabBar页签切换页面功能
我这里用三个页面举例,新建home、info、mine页面,创建components目录存放自定义Tabs组件,目录结构如下,我这里已经准备了6个图标图片存放在了resources/rawfile/tabs
用户11403658
2024/12/25
2760
推荐阅读
相关推荐
43. [HarmonyOS NEXT Row案例十一] 构建智能分页控件:Row组件实现页码与翻页按钮的完美结合
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档