Linux 环境下,内网机器通过局域网中其他机器访问互联网的方法

今天在工作中,遇到这样的一个问题:不知道是谁将服务器上连接互联网的网线拔了。导致服务器无法直接连接到互联网。但是连接到服务器的客户端电脑(也是 Linux 系统)是能够正常联网的。所以,想到利用代理的方式,让服务器透过客户端电脑连接互联网。

客户端的操作

首先,使用以下命令安装 squid,我们将借助它进行代理:

apt install squid

然后,进行配置。编辑 /etc/squid/squid.conf,首先,找到 http_access deny all 将其修改为 http_access allow all 以允许所有用户利用其进行代理。然后找到 http_port 3128 将其修改为 http_port 192.168.1.128:3128,其中的 192.168.1.128 是客户端的 IP 地址(准确说是和服务器连接的那个网口的 IP 地址)。

配置完毕后,通过以下命令启动 squid 代理:

squid -k parse               # 检查配置文件是否正确
squid -z                     # 建立缓存目录
service squid start          # 启动服务

到这里,客户端的配置就已经结束了,可以通过 netstat -nltp 命令查看服务是否正确运行:

$ netstat -nltp
tcp      0       0 0.0.0.0:3128          0.0.0.0:*          LISTEN         10086/(squid)

如果看到类似以上的输出,则代表服务正常执行。

服务器端操作

使用以下命令启用代理:

export http_proxy=http://192.168.1.128:3128

也可以将这句话添加到环境变量中。

执行完毕,就可以使用命令 curl www.baidu.com 来测试是否能够连接到网络。如果在输出中能够看到类似 “百度一下,你就知道” 的字样,则证明已经成功连接网络。

此方法可以让大部分命令都透过网络进行连接。但是有一些命令可能不会读取系统的环境变量,对于这些命令,需要查阅它们的使用手册,确认具体的操作办法。

你可能感兴趣的:(Linux 环境下,内网机器通过局域网中其他机器访问互联网的方法)