使用iptables实现端口转发

SSH 也能实现本机的端口转发,只不过原来的 1 条连接会变成 3 条。而 iptables 的端口转发则是在内核进行(netstat是看不到的),效率相对更高。下面介绍其典型的几种端口转发形式。

将本地的端口转发到本机端口

设置端口转发

将本机的 7777 端口转发到 6666 端口(该设置方式在机器重启之后失效):

1
root@host01$ iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666


SSH隧道详解

场景一:本地端口转发实现跳板机

场景描述

想象一个业务场景,我的电脑想访问host03的9000端口,但是网络不通,但是我有host02的ssh登录权限,并且host02能够访问host03的9000端口,那么能不能通过host02作为跳板机直接让我的电脑访问host03:9000呢?

image-20211230150950790

其实这个就是ssh本地端口转发的典型应用,可以实现跳板机的功能,如上图所示。


通过nc远程拷贝文件

方法1,传输文件演示(先启动接收命令)

使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了

把A机器上的一个rpm文件发送到B机器上

需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。

Java NIO - 基础之 Selector、Channel、Buffer

NIO 简介

NIO是什么?

本质上,Java NIO 底层的实现是IO多路复用模型,只不过 Java NIO 组件提供了统一的 API,为大家屏蔽了底层的操作系统的差异。

  • new IO 或 non blocking IO,java 1.4开始引入(JDK1.7+中的NIO统称为NIO.2)可以替代标准的java io api;
  • 与旧IO有着相同的作用和目的,但使用方式完全不同,NIO面向缓冲区、基于通道,文件的读写更加灵活高效。