十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

给内网虚拟机加一个可以访问外网代理,适合小白

给内网虚拟机加一个可以访问外网代理,适合小白 方案选型说明小白友好架构代理机A能上外网 和内网机互通双网卡外网网卡 内网网卡内网机B只能内网不能访问外网通过A上网拉npm/yarn依赖两种常用方案我推荐方案1squid HTTP代理最简单适配npm/yarn/git小白首选✅ 优点配置简单不需要改路由npm、yarn、git、curl都支持 ❗ 适用HTTP/HTTPS 网页、npm依赖拉取方案2iptables 透明网关全局代理所有流量走代理配置复杂新手不推荐前置确认两台机器先做好1. 两台机器互通假设代理机A内网IP192.168.1.100举例换成你真实内网IP内网机B内网IP192.168.1.101在B上 ping 192.168.1.100 能通防火墙不要拦截内网端口2. 系统说明下面全部是 CentOS / Rocky / Ubuntu 通用区分写命令你看自己系统。方案1Squid HTTP代理推荐前端拉依赖完美适配第一步代理机A能上外网安装配置 squid1. 安装 squidCentOS 7/8 / Rockyyum install squid -yUbuntu / Debianapt update apt install squid -y2. 修改配置文件vim /etc/squid/squid.conf如果你不会vim 按i编辑改完按Esc输入:wq回车保存退出找到这一行http_access deny all在它上面添加允许你内网网段通行# 允许内网整个网段改成你的内网网段例子192.168.1.0/24 http_access allow 192.168.1.0/24 http_access deny all找到http_port 3128默认就是http_port 3128不要修改这是代理端口关闭安全校验可选内网环境用 找到dns_v4_first on没有就不用管 重点关闭squid ssl_bump相关新手不要搞HTTPS拦截我们用普通https代理3. 启动并开机自启# 启动 systemctl start squid # 开机自动启动 systemctl enable squid4. 放行防火墙端口 3128CentOS / Rocky firewalldfirewall-cmd --add-port3128/tcp --permanent firewall-cmd --reloadUbuntu ufwufw allow 3128/tcp✅ 代理机测试是否正常在A本机测试curl -x http://127.0.0.1:3128 https://www.baidu.com能返回百度html代表squid代理部署成功第二步内网机器B无外网配置使用代理代理地址http://代理机内网IP:3128示例http://192.168.1.100:3128方式A临时生效当前终端重启失效适合测试在内网机B执行export HTTP_PROXYhttp://192.168.1.100:3128 export HTTPS_PROXYhttp://192.168.1.100:3128 export NO_PROXYlocalhost,127.0.0.1,192.168.1.0/24测试是否能上网curl https://www.baidu.com能返回内容 代理成功方式B永久全局代理所有终端生效推荐编辑环境变量文件vim /etc/profile文件末尾粘贴export HTTP_PROXYhttp://192.168.1.100:3128 export HTTPS_PROXYhttp://192.168.1.100:3128 export NO_PROXYlocalhost,127.0.0.1,192.168.1.0/24生效配置source /etc/profile第三步前端专用npm / yarn 单独配置代理重点拉vue依赖即使系统全局配置了代理npm有时候不会读取系统环境变量建议单独配置 在内网机B执行# npm 设置代理 npm config set proxy http://192.168.1.100:3128 npm config set https-proxy http://192.168.1.100:3128 # yarn 如果你用yarn yarn config set proxy http://192.168.1.100:3128 yarn config set https-proxy http://192.168.1.100:3128查看是否配置成功npm config list之后就可以正常执行npm install拉取vue前端依赖补充git 走代理如果你还要拉github/gitee代码内网机B执行git config --global http.proxy http://192.168.1.100:3128 git config --global https.proxy http://192.168.1.100:3128⚠️ 关闭代理命令需要取消代理时用内网机B取消系统代理unset HTTP_PROXY unset HTTPS_PROXY永久删除删除/etc/profile里那几行export再sourcenpm 删除代理npm config delete proxy npm config delete https-proxygit 删除代理git config --global --unset http.proxy git config --global --unset https.proxy常见踩坑排查小白必看❌ curl 超时代理机防火墙没开放3128端口两台机器不在同一内网ping不通❌ npm install 报错 connect timeoutnpm没有单独配置代理系统代理npm不认❌ squid 启动失败配置文件语法写错检查squid.conf 校验命令squid -k parse检查配置语法如果你想要【全局透明代理所有流量自动转发不用配置环境变量】也就是方案2 iptables网关模式适合不想配置各种软件代理我也可以给完整分步教程但新手优先先用上面squid方案足够前端开发使用你现在可以回复我2个信息我帮你改成适配你环境的完整命令两台虚拟机分别是什么系统CentOS7 / Rocky9 / Ubuntu22.04代理机A的内网IP是多少
返回列表