背景介绍
之前建设网站过程中,有部分域名ICP备案麻烦,就买了台新加坡的服务器搭了几个网站,基本上也没什么访问量。早些年还用这种服务器搭个梯子之类的,但是近些年对自建梯子管控越来越严了,自建梯子的情况极有可能出现IP被封的风险。
为了规避常规FQ软件的风险,在docker学习过程中发现有不少浏览器镜像,跑起来后可以直接通过浏览器访问docker容器内的浏览器服务,这样在规避风险的情况下,也能较方便的访问外网服务。
理论上他是一个服务器上的浏览器,将它跑在内网环境上之后,它自然就能够访问内网资源。服务器能访问什么网站就可以访问什么网站,所以。。。
搭建
我们使用 docker compose 来管理 我们的镜像服务,docker-compose.yml 目录的内容如下:
services:
firefox:
image: linuxserver/firefox:latest
restart: unless-stopped
container_name: firefox
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Shanghai
- LC_ALL=zh_CN.UTF-8
- CUSTOM_USER=zhuzl # 用户名
- PASSWORD=123456 # 密码
ports:
- 8100:3000
volumes:
- ./config:/config
- /usr/share/fonts/chinese:/usr/share/fonts/chinese # 挂载中文字体目录,否则会出现中文乱码的问题
shm_size: "1gb"
启动服务后,可在nginx配置代理,代理示例如下:
location ^~ /
{
proxy_pass http://localhost:8100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
# proxy_hide_header Upgrade;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
set $static_fileNpPoblu9 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileNpPoblu9 1;
expires 1m;
}
if ( $static_fileNpPoblu9 = 0 )
{
add_header Cache-Control no-cache;
}
}
配置好后,可使用浏览器访问了,访问后初始界面如下:
优化配置
优化配置一:解决乱码问题
如果未挂载中文字体的话,会出现下面这种乱码情况:
所以我们需要将中文字体文件拷贝到宿主机的某个目录,如 /usr/share/fonts/chinese
,然后挂载到容器的 /usr/share/fonts/chinese
目录,这样在启动容器的时候就可以自动价值中文字体了。
优化配置二:安装翻译插件
由于我们访问的外网多为英文内容,为便于快速消化内容,可给浏览器安装翻译插件,我这里安装了功能强大的「沉浸式翻译」,官网是:https://immersivetranslate.com/,进入官网后,可以直接点击「Firefox扩展」,进入Firefox 应用商店直接安装,安装后就可以很方便的使用了:
使用体验
整体访问速度上跟本地没什么蛮大区别,由于是基于KasmVNC
的虚拟桌面技术,不能直接使用快捷键复制、粘贴内容,虽说设置中有「无缝剪切板」之类的开关,但是试了下也没效果,也有可能是我理解方面的问题吧:
不过也可以使用 KasmVNC 自带的 剪贴板实现剪切板的读写:
有一点需要特别注意的: 一定不要关闭最后一个浏览器标签 ,否则就直接黑屏了。黑屏后的话,需要重启docker服务才能继续使用。
评论 (0)