iptables 解决双网卡linux服务器SSH&putty远程访问问题

本文介绍了如何使用iptables解决双网卡Linux服务器上的SSH远程访问问题,包括屏蔽指定IP、设定协议与端口、允许HTTP/HTTPS连接以及防止DoS攻击。此外,还涉及了端口转发、NAT转换和负载平衡的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、屏蔽指定的IP地址
以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:


BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP
(或者仅屏蔽来自该IP的TCP数据包)
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP
允许来自外部的ping测试
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
允许从本机ping外部主机
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
允许环回(loopback)访问
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

二、iptables:协议与端口设定


允许所有SSH连接请求
本规则允许所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包


iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
允许从本地发起的SSH连接
本规则和上述规则有所不同,本规则意在允许本机发起SSH连接,上面的规则与此正好相反。


iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
仅允许来自指定网络的SSH连接请求
以下规则仅允许来自192.168.100.0/24的网络:


iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
上例中,你也可以使用-s 192.168.100.0/255.255.255.0作
### 树莓派网线直连电脑配置教程 #### 材料准备 为了实现树莓派通过网线直连笔记本电脑并共享上网,需准备好以下材料: - **树莓派设备**:已安装 Raspbian 系统的 SD 卡以及供电装置[^1]。 - **网线**:可以是交叉网线或直连线(现代大多数设备支持自动协商,因此直连线通常也能正常工作)。 - **笔记本电脑**:具备双网卡功能(当前主流笔记本均满足此条件),用于提供网络共享服务。 #### 连接硬件 完成上述准备工作后,按如下方式连接硬件: - 使用电源适配器为树莓派供电。 - 将网线的一端接入树莓派的以太网接口,另一端插入笔记本电脑的有线网口。 #### 笔记本电脑上的网络设置 为了让树莓派能够访问互联网,需要在笔记本电脑上启用 Internet 共享功能: ##### Windows 平台下的操作步骤 1. 打开控制面板 -> 网络和 Internet 设置 -> 更改适配器选项。 2. 右键点击正在使用的无线网络适配器(即连接到外部网络的那个),选择属性。 3. 转至“共享”标签页,勾选“允许其他网络用户通过此计算机的 Internet 连接来连接”,并在下拉菜单中指定本地连接作为目标网络接口。 ##### Linux 平台下的操作步骤 对于运行 Linux 的主机来说,则可以通过命令行或者图形界面来进行类似的设定。例如,在 Ubuntu 中执行以下指令开启 NAT 功能以便于内部局域网成员获取外网权限: ```bash sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward >/dev/null ``` 这里假设 `wlan0` 是您的 WiFi 接口名称,请依据实际情况调整相应参数[^4]。 #### 获取树莓派 IP 地址 当一切就绪之后,下一步就是确定树莓派的具体 IP 地址。虽然某些资料建议利用 `arp -a` 命令查询,但由于返回的结果可能包含多个条目而难以辨认哪一个是目标设备,推荐采用更精确的方法寻找其确切位置。一种可行方案是在终端输入下面这段脚本来扫描子网内的活跃主机: ```python import socket, subprocess def get_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even have to be reachable s.connect(('10.255.255.255', 1)) ip = s.getsockname()[0] except Exception as e: print(e) ip = '127.0.0.1' finally: s.close() return ip local_ip_prefix = ".".join(get_ip().split(".")[:-1]) + "." for i in range(1, 255): result=subprocess.run(['ping','-c','1','-W','1',(local_ip_prefix+str(i))],stdout=subprocess.PIPE).returncode if not int(result): print(f"{local_ip_prefix}{i} is active.") ``` 另外还可以借助专门设计用来发现局域网中的 Raspberry Pi 设备的小型应用程序如 Advanced IP Scanner 或 Angry IP Scanner 自动探测出对应机器所在的位置[^2]^。 #### 登录管理与进一步操作 一旦获得了正确的 IP 地址信息,就可以尝试通过 SSH 客户端或者其他远程桌面解决方案建立联系了。如果倾向于文字模式交互的话,PuTTY 是一个不错的选择;而对于偏好直观可视化的用户体验而言,则 VNC Viewer 提供了一个良好的途径去操控远端系统画面显示效果[^3][^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值