Lexsion 发布的文章

CentOS7下编译安装Shadowsocks-libev

CentOS7下编译安装Shadowsocks-libev

前言:

Shadowsocks是一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包。在中国大陆,本工具广泛用于解决长城防火墙的未知错误而导致的Google、YouTube、Facebook等正常境外网站不能正常访问。网上有大量热心网友提供了各种版本的一键安装脚本,用于支持那些非计算机从业人员快速方便的在服务器上搭建服务端。但是某些情况下,一键脚本的安全性难以保证;另一方面,使用一键脚本不能让我们具体了解到这个工具是如何工作的。而本文则提供了一步一步从源代码手动编译安装Shadowsocks-libev的过程。

阅读本文,您可能需要基本的Linux系统操作技术与网络技术基础。

步骤:

  1. 准备编译环境,在CentOS7下运行以下两条命令完成环境准备。

     yum install epel-release -y
     yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y
  2. 安装Git,并从GitHub下载源码。

     yum install git -y
     cd /usr/local/src
     git clone https://github.com/shadowsocks/shadowsocks-libev.git
  3. 配置并编译源代码。

     cd shadowsocks-libev
     git submodule update --init --recursive
     sh autogen.sh
     ./configure --disable-documentation
     make
     make install
  4. 配置Shadowsocks服务端配置文件,文件位于 .../shadowsocks-libev/debian/config.json,将此文件复制到/etc/shadowsocks-libev/config.json

     mkdir /etc/shadowsocks-libev
     cp ./debian/config.json /etc/shadowsocks-libev/config.json
  5. 使用vi编辑器打开/etc/shadowsocks-libev/config.json

     vi /etc/shadowsocks-libev/config.json
  6. 按照自己的需求填写服务端参数。

     {
     "server":"0.0.0.0",    //服务端IP地址,Linux系统下0.0.0.0表示本地
     "server_port":8388,    //服务端端口号
     "local_port":1080,     //本地端口号
     "password":"barfoo!",   //密码
     "timeout":10,    超时时长(秒)
     "method":"chacha20-ietf-poly1305"     //加密方式
     }
     #加密方式据说有如下几种:
     aes-256-gcm
     aes-192-gcm
     aes-128-gcm
     aes-256-ctr
     aes-192-ctr
     aes-128-ctr
     aes-256-cfb
     aes-192-cfb
     aes-128-cfb
     camellia-128-cfb
     camellia-192-cfb
     camellia-256-cfb
     chacha20-ietf-poly1305
     chacha20-ietf
     chacha20
     rc4-md5
  7. shadowsocks-libev.default文件复制到/etc/sysconfig/shadowsocks-libev
    shadowsocks-libev.service文件复制到/usr/lib/systemd/system/目录。因为本例中编译安装的程序文件位置为/usr/local/bin/,需要修改一下文件中的启动命令。

    cp /usr/local/src/shadowsocks-libev/rpm/SOURCES/systemd/shadowsocks-libev.default /etc/sysconfig/shadowsocks-libev
    cp /usr/local/src/shadowsocks-libev/rpm/SOURCES/systemd/shadowsocks-libev.service /usr/lib/systemd/system/
    vi /usr/lib/systemd/system/shadowsocks-libev.service

    将以下一行:

    ExecStart=/usr/bin/ss-server -c "$CONFFILE" $DAEMON_ARGS

    替换成以下内容,按ESC键输入:wq,按Enter键保存退出即可。

    ExecStart=/usr/local/bin/ss-server -c "$CONFFILE" $DAEMON_ARGS
  8. 运行服务,检查服务是否正常运行,若服务运行正常,即显示:Active: active (running)

    systemctl start shadowsocks-libev
    systemctl status shadowsocks-libev
  9. 确定服务正常后,将服务添加到开机启动。这时我们在客户端中输入服务器的IP地址等配置信息后就可以使用了,若依然不可以,请检查配置信息是否填写正确,并检查服务端防火墙配置。

    systemctl enable shadowsocks-libev

防火墙配置:

若服务端与客户端配置均正确,依然无法建立连接,我们便需要检查是否服务端防火墙导致。若服务器系统配置了防火墙并已经启动,那么在配置防火墙开放对应服务端口前,自然是无法与服务器建立连接的。其实我们作为服务器的管理人员,自然应该知道自己服务器是否有开启防火墙的。

  1. 我们可以使用此网站检查某个端口是否可以访问。输入IP地址和端口号后点击Check即可检测。若提示Port XX is open on x.x.x.x 即表示端口已经打开。反之 close即表示端口没有反应。此时我们进一步检查防火墙。

  2. 检查防火墙服务是否运行,CentOS7默认将原来CentOS6时代的防火墙iptables升级为了firewalld。使用以下命令检查防火墙运行状态。若回显信息提示:running,则表示防火墙运行中。

    firewall-cmd --state
  3. 为Shadowsocks在防火墙中添加规则,开放对应端口的TCP和UDP通信。下以上文配置文件中的8388端口为例,具体按自己需求修改。到此为止,我们便完成了防火墙的配置。

    firewall-cmd --zone=public --add-port={8388/tcp,8388/udp} --permanent
    firewall-cmd --reload

本文到此结束。下附Ubuntu安装:

Ubuntu下编译安装Shadowsocks-libev

安装各种编译需要的库、工具等:

sudo apt install --no-install-recommends build-essential autoconf libtool libssl-dev gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc xmlto apg libpcre3-dev zlib1g-dev libev-dev libudns-dev libsodium-dev libmbedtls-dev libc-ares-dev automake

拉取源代码:

sudo apt install git
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
git submodule update --init
./autogen.sh && ./configure --disable-documentation && make
sudo make install

创建配置文件:

创建配置文件目录:

sudo mkdir /etc/shadowsocks-libev

单用户配置文件:

sudo vi /etc/shadowsocks-libev/config.json
{
     "server":"0.0.0.0",
     "server_port":8388,
     "local_port":1080,
     "password":"mypassword",
     "timeout":300,
     "method":"aes-256-gcm" ,
     "fast_open": false
 }

多用户配置文件:

sudo vi /etc/shadowsocks-libev/manager_config.json
{
     "server":"0.0.0.0",
     "local_port":1080,
     "method":"aes-256-gcm" ,
     "timeout":300,
     "fast_open": true,
     "port_password": {
        "8388": "barfoo1",
        "8389": "barfoo2"
    }
 }

创建Systemd服务文件:

单用户:

sudo vi /etc/systemd/system/shadowsocks-libev.service
[Unit]
Description=Shadowsocks-libev Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Restart=on-abort

[Install]
WantedBy=multi-user.target

多用户:

[Unit]
Description=Shadowsocks-libev Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/ss-manager -c /etc/shadowsocks-libev/manager_config.json -u
Restart=on-abort

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

sudo systemctl start shadowsocks-libev
sudo systemctl enable shadowsocks-libev

参考:

  1. shadowsocks-libev-GitHub项目页

CentOS7部署MinIO服务器&VPS使用MinIO Client备份数据

CentOS7部署MinIO服务器&VPS使用MinIO Client备份数据

重要数据备份是很重要的,本博客也遇到了几次意外,但是都从备份中恢复了。以往都是定期手动备份站点目录和数据库,耗时又费力。在此探索一种新的方式,在一台存储空间较大的VPS(俗称大盘机)上部署MinIO服务端,客户机通过MinIO Client将文件备份到大盘机。

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。

服务端部署

根据MinIO官方文档描述,MinIO服务端部署非常简单,几条命令即可完成安装,然后我们再创建一个systemd配置文件用于开机自启即可。

  1. 依次输入以下两行命令,下载二进制文件至/usr/local/bin,并赋予其可执行权限。

     wget -P /usr/local/bin https://dl.min.io/server/minio/release/linux-amd64/minio
     chmod +x /usr/local/bin/minio
  2. 依次输入以下两行命令,创建MinIO工作目录,尝试手动运行服务。记录回显的Endpoint、AccessKey、SecretKey等信息,尝试在浏览器中输入Endpoint中的地址,输入AccessKey和SecretKey登陆。检查正常后按Ctrl + C停止MinIO。若不成功,请检查MinIO是否正常运行,并检查系统防火墙配置是否放行9000端口。

     mkdir /srv/MinIO
     minio server /srv/MinIO
  3. CentOS7使用firewalld防火墙,使用以下第一条命令在防火墙规则中添加开放9000端口的TCP通信,另勿忘使用第二条命令重载防火墙。

     firewall-cmd --zone=public --add-port=9000/tcp --permanent
     firewall-cmd --reload
  4. 运行以下命令,在/etc/systemd/system/目录下创建minio.service配置文件,并使用vi编辑器打开。tips:Alt+.可快速输入上一命令中的变量。

     touch /etc/systemd/system/minio.service
     vi /etc/systemd/system/minio.service
  5. 在vi编辑器中输入以下内容,按ESC键,输入:wq,保存退出。

     [Unit]
     Description=MinIO object storage server
     After=network.target
    
     [Service]
     Type=simple
     ExecStart=/usr/local/bin/minio server /srv/MinIO
     Restart=on-failure
    
     [Install]
     WantedBy=multi-user.target

6.运行以下命令,启动服务,并添加开机启动,此时通过浏览器应该能正常访问到网页即证明配置完成。

```
systemctl start minio
systemctl enable minio
```

客户端配置

客户端的配置依然很简单。

  1. 使用wget下载文件到,并赋予其可执行权限。

      wget -P /usr/local/bin/ https://dl.min.io/client/mc/release/linux-amd64/mc
      chmod +x /usr/local/bin/mc
  2. 使用以下命令添加上文部署好的MinIO对象存储服务器信息。其中,Alias是云存储服务的简称。API-SIGNATURE是可选参数。默认情况下,它设置为“S3v4”。

     mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>

    ​ 例如:

      mc config host add MinIO http://10.145.87.224:9000 Do24SZ3JDWEKDWPZ5DV2O KL7Hjas76BdI4msWYEZh3FH*Sh4B+gH&SvGc3z5Ub
  3. 在我们上面添加的MinIO下,创建一个名为blog的存储桶(bucket)。

     mc mb MinIO/blog
  4. 运行以下命令将blog.lexsion目录下的文件同步到名为MinIO/blog的bucket里,并保持对目录修改的监听。此命令在本地修改/删除文件后会同步在bucket中修改/删除。测试正常后按Ctrl+C停止。

     mc mirror -w --overwrite --remove /www/wwwroot/blog.lexsion MinIO/blog
  5. 创建systemd配置文件,使用以下命令打开vi编辑器。

     vi /etc/systemd/system/minioc.service
  6. 在打开的编辑器中按i键进入编辑模式,输入如下内容,按ESC键,输入:wq按Enter键保存退出。

     [Unit]
     Description=MinIO Client Service
     After=network.target
    
     [Service]
     Type=simple
     ExecStart=/usr/local/bin/mc mirror -w --overwrite --remove /www/wwwroot/blog.lexsion MinIO/blog
     Restart=on-failure
    
     [Install]
     WantedBy=multi-user.target
  7. 运行服务,并添加到开机自启动。

     systemctl start minioc
     systemctl enable minioc

到此,本文就结束了。但是MinIO的功能远不止这些,大家有兴趣可以自行探索。

参考:

MinIO中文Docs.
https://docs.min.io/cn/
MinIO.Docs.English Ver.
https://docs.min.io/docs/
Centos7(Firewall)防火墙开启常见端口命令
http://www.5yun.org/10074.html
vim非完全学习手册
https://lexsion.com/index.php/archives/129/

CentOS7升级最新版Git

CentOS7升级最新版Git

前言

Git是一个快速、可扩展的分布式版本控制系统,具体用途这里不再赘述。有时,我们生产环境中的某些程序可能会对Git版本有要求。但是CentOS7中的Git版本是比较旧的1.8.3.1版本,且无法使用yum升级到最新版本。如果这时我们的程序需要2.x的Git,便会出现兼容性问题。这种情况下,我们就需要自行下载并编译安装了。

读懂实践本文,你可能需要在技能树中点亮以下技能:

  • Linux系统基础操作

操作

  1. 运行以下命令安装所有依赖软件包。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
yum install gcc perl-ExtUtils-MakeMaker
  1. 在/usr/src目录下创建一个Git目录,并进入。

    mkdir -p /usr/src/Git
    cd /usr/src/Git
  2. 打开Git下载页下载最新版的Git。页面按发布时间排序,我们直接点开最近的一个版本(我这2.23.0)。然后在“Source code(tar.gz)”上右击,复制其下载地址,然后使用wget下载文件。此命令由wget后空格加文件地址构成。

wget https://github.com/git/git/archive/v2.23.0.tar.gz
  1. 查看下载的文件名(比如我这里下载的文件名是v2.23.0.tar.gz),并使用tar工具解包,解包后查看解出的文件夹名称。这里我们发现文件加名为“git-2.23.0”
[root@lexsion]# ls
v2.23.0.tar.gz
[root@lexsion]# tar xzf v2.23.0.tar.gz
[root@lexsion]# ls
git-2.23.0  v2.23.0.tar.gz
  1. 进入解出的文件夹,使用make命令编译并安装新版Git工具。
cd git-2.23.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
  1. 移除旧版本Git,为新版Git添加软链接。
yum remove git
cd /usr/bin
ln -s  /usr/local/git/bin/git git
  1. 使用以下命令查看Git版本,确认是否安装成功。
git --version

以上就是CentOS7下,升级Git版本的过程。

参考

  1. centOS7升级git版本到2.7.3
  2. centos7升级git到最新版本
  3. Git-GitHub项目页

OpenSSL-使用OpenSSL生成CSR文件

OpenSSL-使用OpenSSL生成CSR文件

前言

在申请SSL证书之前,需要先生成CSR文件(CSR,Cerificate Signing Request,证书请求文件)。CSR是公钥证书的原始文件,它包含了服务器信息和单位信息,需要提交给CA认证中心。很多网站可以帮我们生成CSR文件,图形化的操作也非常方便,但毕竟不是我们本地生成,恐有key泄露的风险。为此,我找到了在Linux系统下通过OpenSSL工具生成该文件的方法。

读懂实践本文,你可能需要在技能树中点亮以下技能:

  • Linux系统操作基础

准备

  • 一台运行Linux系统的本地计算机或服务器

利用OpenSSL命令生成ECC CSR文件

我申请的SSL证书是ECC类型的(ECC,椭圆曲线加密),相对RSA类型的SSL证书,ECC类型有更好的性能,但其兼容性较RSA差。这里先介绍ECC类型SSL证书申请所用的CSR文件生成的过程。

  1. 使用以下命令在当前目录生成一个名为“Lexsion_ECC.key”的私钥文件,其加密方式为prime256v1。
openssl ecparam -out Lexsion_ECC.key -name prime256v1 -genkey
  1. 使用以下命令利用上面生成的私钥文件“Lexsion_ECC.key”生成一个CSR文件名为:Lexsion_ECC.csr
openssl req -new -key Lexsion_ECC.key -out Lexsion_ECC.csr

上文中“Lexsion_ECC.key”“Lexsion_ECC.csr”可自定义为需要的文件名。

利用OpenSSL命令生成RSA CSR文件

生成RSA CSR文件只需要一行命令。其中,Lexsion_RSA.csr为CSR文件,Lexsion_RSA.key为私钥文件。rsa:2048为加密强度,可按需求修改。

openssl req -out Lexsion_RSA.csr -new -newkey rsa:2048 -nodes -keyout Lexsion_RSA.key

最终的生成

无论是ECC算法还是RSA算法,生成CSR文件的过程中,都要求我们输入一些信息。我们只需要按照提示输入信息即可完成生成。

部分回显信息翻译:

Country Name (2 letter code) [XX]: #国家 ;两个字母表示,可留空。
State or Province Name (full name) []: #州或省;输入全称,可留空
Locality Name (eg, city) [Default City]: #所在城市;可留空
Organization Name (eg, company) [Default Company Ltd]: #组织名称;比如可填公司名称,可留空
Organizational Unit Name (eg, section) []: #组织部门名称;比如IT,可留空
Common Name (eg, your name or your server's hostname) []: #简称FQHN;填写单域名或泛域名,此处必填。
Email Address []: #邮箱地址;可不填写

A challenge password []: #密码;一般留空
An optional company name []: #可选公司名;可留空

按照提示输入完需要的信息后,key文件&csr文件会于当前所在目录产生。这时我们就可以把产生的CSR文件提交给CA了。私钥(key文件)非常重要,切记保存好,不能泄露。

参考

  1. openssl manpage
  2. 公钥加密算法那些事 | RSA 与 ECC 系统对比

通过YandexMail服务搭建免费域名邮箱

前言:

某些情况下,我们需要使用自己的域名搭建邮箱。使用自建服务器的方式繁琐,稳定性较差。所以通常都是使用专业的公司提供的企业(组织)邮箱服务。考虑自己使用的情况,用户数与邮件数量较低,我们可以利用一些商业公司提供的免费体验型业务来做。在中国大陆,例如网易与腾讯公司均有提供企业邮箱业务,其免费版本用户数较低或有需要提交企业信息的情况。在此,我找到了YandexMail,它是俄罗斯著名的邮箱服务提供商,提供免费的企业邮局服务。其容量大,用户数多,支持绑定域名。可创建1000邮箱用户,每个用户10G的容量。支持 POP3、IMAP、SMTP协议。目前看来,注册时可以不用邮箱,不必须填写电话号码收短信。现在如此良心的企业不多了,不敢独享,遂有此帖。

读懂实践本文,你可能需要在技能树中点亮以下技能:

  • 域名相关基础知识;
  • 基本的Windows系统操作;
  • 会一点儿英语;

准备:

  • 运行Windows电脑一台(其他系统也可,但具体某些操作可能不同)
  • 域名一枚

注册账号:

1:使用浏览器打开注册地址:https://passport.yandex.com/registration

2:注册页如下图所示。
A1-b1.jpg

  • First name处填写名字,Surname处填写姓氏,Enter a login处填写登陆账号,Enter a password 和Confirm password处分别填写两次填入同样内容以设置密码,Mobile phone number处填写自己电话号码接收短信。输入手机号码后,点击Send code发送短信验证码,在Enter the code from the SMS处填入接收到的验证码点击Confirm完成验证并点击Register即可完成注册。默认需要填写电话号码接收短信验证,也可以点击“I don't have a telephone number”使用图片验证码的方式通过。

    A1.jpg

  • 图片验证方式需设置密保问题,以保证在忘记密码时可通过密保问题找回密码。点击“I don't have a telephone number”即进入图片验证方式。Choose a security question处选择一个安全问题,在下面的Answer to the security question处填入答案。最后,在Enter the characters处填入图片中的验证码,并点击Register完成注册。若验证码无法辨识,可点击Show a different code更换验证码。

添加域名:

1:使用浏览器打开添加域名网址:https://connect.yandex.ru/pdd/

2:打开网址后会发现有些俄文,但这个并不会对我们造成太大困扰。检查浏览器页面右上角是否有显示登录名,若无登陆名,则点击右上角的登陆图标登陆。登陆后在页面中间的文本框中输入自己的域名,然后点击文本框后的按钮开始添加域名。
InkedA2_LI.jpg

3:新出现的YandexConnect页面中会提醒我们需要验证域名的所有权。如图所示:
InkedB1_LI.jpg

  • 它提供了四种方法,从左到右依次为:HTML文件验证,Meta tag验证,WHOIS验证,DNS记录验证。这里因为我域名使用了Cloudflare做域名解析,有对域名的控制权,所以直接使用最简单的DNS记录验证。

4:根据图示要求,我将在Cloudflare中操作添加一个TXT记录。

登陆Cloudflare,选择要操作的域名,点击DNS按钮进入DNS配置页面,点击“Add record”按钮准备添加新纪录。
C1.jpg

  • Type处选择TXT,Name处输入@,Content处输入Yandex提供的文本内容,最后点击Save完成添加。

5:类似,我们需要再添加一个MX记录,这样邮件服务才能正常运作。Type处填写MX,Name处填写@,Mail server处填写mx.yandex.net,Priority处填写10,最后点击Save保存。
C2.jpg

全部填写好后先等待几分钟(这样成功率高一些),回到验证页面点击Start verification开始验证。下图既为验证通过已经可以使用了:

B3.jpg

出现下图则表示验证通过了,但是MX记录还没生效,可以检查一下MX记录有没有填写错误,若无错误建议等待次日再来检查。

B2.jpg

6:假如我们的域名为XXX.COM,我们可能需要通过访问mail.XXX.COM进入邮箱Web页。我们可以通过添加一个CNAME记录来实现这个需求。Cloudflare中添加一条记录,Type选择CNAME,Name处填写mail,Target处填写domain.mail.yandex.net,最后点击Save保存即可。通过这个mail.XXX.COM登陆是有好处的,相对于通过mail.yandex.com登陆,通过前者登陆时用户名不需要填写@及其右边的域名,直接使用其登陆名就可以登陆。

7:在YandexConnect页面中点击“DNS management” ,参考页面中给出的DNS记录,将原有用于验证的TXT记录删除,并添加相关两个TXT记录。

添加账号:

  • 1:打开账号管理页面:https://connect.yandex.com/portal/admin,如出现登陆页面,则登陆账号。
  • 2:点击“Все сотрудники”(意为:所有员工),打开所有员工页面。点击“Add”,在出现的二级菜单中的条目,“Add a person”表示添加一个员工,“Пригласить сотрудников”意为邀请员工,“Create a department”意为创建一个部门。这里我们点击“Add a Person”即可打开添加新员工页面。
  • 3:页面中,Last name表示姓氏,Name表示名字,Middle name意为中间名,Job title意为职称,Language处为语言选择,Time zone处选择时区,Birth date意为生日,Gender意为性别,Login处填写为其分配的邮箱地址(只填写@左边部分),Password与One more time处输入两次密码。信息填写后,点击黄色的“Add”即完成一个账号的添加,这里我们可以依次添加需要的账号。
  • 4:添加账号后,点击账号,右侧对应显示其名片页,点击头像处可修改头像。点击右上角三点弹出对应账号操作项目,Edit表示编辑,Manage aliases表示管理别名,Change Password为修改密码,Block user 为封锁用户,Grant admin rights为设置管理员权限,Delete为删除账号。

登陆账号:

  • 1:我们可以在此页面登陆Web版本的邮箱:https://mail.yandex.com,需要注意的是,在这里我们需要使用完整邮箱地址登陆。

  • 2:在Enter your login, email or phone框中输入完整邮箱地址,点击“Log in”,按提示输入密码即可登陆Web版邮箱。

  • 3:或可参考添加域名6小节内容,实现自有域名登陆页面,可免输邮箱地址的域名部分。

  • 4:Yandex支持IMAP协议,我们可以使用支持IMAP协议的邮件应用收发邮件。

    IMAP服务器:imap.yandex.com

    SMTP服务器:smtp.yandex.com

    使用完整邮箱地址作为用户名,与网页端相同的登陆密码登陆。

参考:

Zebra GK888t打印机安装与配置

Zebra GK888t打印机安装与配置

前言

Zebra GK888t是一款支持热敏纸与热转印的热敏打印机。该机器支持宽度在1.00 英寸/25.4 毫米 至 4.24 英寸/108 毫米 打印介质。支持包括卷筒纸、连续纸、模切纸、连续热敏标签、tag材料等打印介质。支持安装宽度在1.33 英寸/33.8 毫米 至 4.3 英寸/110 毫米的碳带。带有串口、并口、USB口。该机器可用于零售、物流、仓储。

提到热敏打印,可能有人没有听说过,但这并不代表您一定没有接触过。目前看来,生活中最常见的热敏打印应用就是外卖订单。正如热敏的字面意思,热敏纸表面有对热敏感的涂层,如果您对热敏纸加热,纸张表面就会显现出颜色。通过对纸张不同位点的加热,就可以在纸上显现出颜色。上面的方案虽然成本较低,但是有一个缺点,打印出的内容难以稳定的长期保存。此方案一般用于对打印质量与时间要求不高的场合,比如快递面单,外卖单,销售小票等。另一种方案,将颜料预先均匀的涂敷在特定的材料表面制成碳带,将碳带与纸张重叠在一起,然后对需要上色的地方加热,使颜料转印到纸张上,这种技术就是热转印了。热转印相对前一种方案很明显提高了成本,但是这也带来了打印的质量的提升、更广泛的打印介质支持、长期保存也更加稳定。此方案常应用于需要长期保存的场景,比如仓储与资产管理标签的打印。

本文主要讲述热转印模式标签纸耗材安装、驱动安装、打印设置、浏览器调用AdobeReader等内容,硬件的连接不再赘述,Windows局域网共享的配置不在本文讨论范围内。本文旨在记录笔者配置过程,方便日后维护时查阅的同时在此分享。

目录

    1. 耗材安装
    1. 驱动安装
    1. 打印设置
    1. 浏览器调整

1:耗材安装

以下简单介绍耗材安装,详细内容可参考官方用户指南

标签纸安装

  1. 向打印机前方拉动松开锁片的控制杆,向上掀开机器至最大张角使顶盖锁撑起上部机构。向打印机后方旋转导纸板调节器并将导纸板向两侧张开;
    A01.png
  2. 向两侧掰开打印纸挂架;
    A02.png
  3. 将标签纸卡在打印纸挂架上;
    A03.png
  4. 拉出标签纸使标签纸从打印机前端伸出并检查纸卷是否能够自由转动,并确保标签纸的打印面是向上的;
    A04.png
  5. 将标签纸卡入两个导纸板下面,调整“调节旋钮”使导板应刚好触及标签纸的边缘,但不应影响其前后移动。
    A05.png

碳带安装

  1. 将碳带穿过碳带支架(注意区分碳带的正反面,从右侧看,碳带旋出方向应为顺时针,如图所示);
    B01.png
  2. 向右挤压弹簧,让碳带芯右端嵌于碳带供应轴右端;
    B02.png
  3. 将碳带芯左侧的缺口对准左侧供应轴的突起,旋转碳带芯,并锁入供应轴的左侧;
    B03.png
  4. 向右挤压弹簧,将空碳带芯右端嵌于拾取轴的右端;
    B04.png
  5. 将空碳带芯左侧的缺口对准左侧拾取轴突起,旋转并将其锁入拾取轴的左侧;
    B05.png
  6. 将碳带绕过热敏头缠绕到拾取轴,注意缠绕方向(从右侧看,绕入方向为顺时针);
    B06.png
  7. 调节拾取轴调节齿轮,将色带卷紧。
    B07.png

    纸张校准

  8. 将撑起上部机构的顶盖锁往机器内侧按压,合上机体至听到咔啪声
  9. 打开电源,一直按住机器出纸键经过红灯快闪一次、两次、直到灯快闪三次时松手,机器将开始进行纸张校准。
  10. 校准完成后,短按一次出纸键,机器应出一张标签纸,此为校准成功。

驱动安装

驱动安装前应当将打印机通过USB数据线正确连接计算机,并将电源接好,本文不对此进行赘述。

  1. Zebra官网支持页面下载驱动安装程序
  2. 双击运行驱动安装程序,按提示点击Next>开始解包过程,在出现的页面中可点击Browse...自定义合适的文件存储位置;
    C01.png
    C02.png
  3. 按照提示一路点击Next至完成解包,在提示完成解包的页面中去掉View release notes前的选框,再点击Finish。
    C03.png
  4. 此时会弹出驱动安装向导,点击下一步开始安装;
    C04.png
  5. 选择安装打印机并点击下一步;
    C05.png
  6. 选择ZDesiger GK888t,然后点击下一步;
    C06.png
  7. 选择端口,一般应为USB001,设置语言为简体中文,亦可在此页面上按需求修改打印机名称,完成后点击下一步;
  8. 在出现的完成页面中可看到两个其他安装选项,我们用不到,去掉两个复选框,点击完成结束安装向导。
    C07.png

打印设置

通过上面的操作完成了驱动程序的安装,下面将对打印机按需配置。比如,我司生产环境的需求是将浓度设置为:22,速度设为50.8mm,标签纸50*40mm,工作方式为热转印。

本地打印设置

  1. 以Windows7系统为例,打开 “开始菜单”,点击“设备和打印机”,在出现的窗口中找到我们新安装的打印机,如果没改过名字应该是Zdesigner GK888t;
  2. 在新装的打印机图标上右击,在右键菜单中选择“打印首选项”;
  3. 在打开的页面中,“选项”选项卡下,首先将标签格式设置为:毫米、纵向,将打印速度设置为50.8mm/s,打印浓度设为22,大小处宽度填写50、高度填写40。其他保持默认,点击应用;
    InkedD01.jpg
  4. 切换到“高级设置”选项卡下,操作模式选择撕纸,标签纸类型选择热转印,跟踪模式选择Web检测,调整均保持0不动,然后点击应用;
    InkedD02.jpg
  5. 切换到“抖动”选项卡,将抖动类型设置为“无”,点击应用,然后点击确定关闭“打印首选项”。
    InkedD03.jpg

Notes:

  1. 若使用Windows10操作系统,则打开打印首选项的方式为:在开始菜单右击,选择设置,然后点击“设备>打印机和扫描仪”;选中要操作的打印机,点击“管理>打印首选项”。
  2. 若需要局域网共享打印机,则需要打开“打印机属性”,在“共享”选项卡下勾选共享这台打印机,并点击应用,此处不做详细展开。
  3. 若发现“打印首选项”的语言为英文,可打开“打印机属性”,进入Languages选项卡选择自己需要的语言,点击应用、确定,但此方法无法应用于Windows10。

通过局域网连接打印设置

以下内容旨在记录通过局域网连接到打印机的过程,其不包含配置局域网共享的过程。在参考以下内容连接打印机前,应确保所有相关电脑已经配置局域网共享。

  1. 查询通过USB线缆连接打印机的电脑的IP地址,不同操作系统下该操作可能不同。以下假设电脑使用网线连接:
  • WindowsXP:右击任务栏通知区域中的本地连接网络图标,选择状态,在打开的对话框中打开支持选项卡,此处显示的IP地址应为本机IP地址。
  • Windows7:右击任务栏通知区域网络图标,选择打开网络和共享中心,在弹出的窗口中点击查看活动网络下的本地连接,最后点击详细信息,此处显示的IPv4地址既为本机IP。
  • 命令行模式查找:若您的电脑只有一张网卡且未安装会产生虚拟网卡的软件(比如VM),可尝试此方案:
    按Windows徽标键+R键打开运行对话框,输入“cmd”回车(不包含引号,下同)进入命令提示符,输入“ipconfig -all”命令显示IP,若您只有一张网卡,此时回显的信息中即可简单的找到IP地址。
  1. 在要配置连接到局域网打印机的电脑上,按Windows徽标键+R键打开运行对话框,输入两道反斜杠加上面查到的IP地址,然后按Enter键。
  2. 在打开的窗口中应能看到共享的打印机,在打印机图标上右击并选择连接,等待其连接并自动完成驱动程序的安装。
  3. 参考上一小节:本地打印设置,在设备和打印机中找到添加的网络打印机图标,按照需求调整打印首选项。若出现打印首选项菜单语言英文问题,参考Notes:3

浏览器调整

因我司生产环境需求为浏览器通过AdobeReader打开服务器生产的PDF文件,并打印成标签。实测发现只有AdobeReader能正常输出打印,所以我们需要安装AdobeReader软件,并选择兼容的浏览器使用。

  1. 因为AdobeReader是一款免费软件,我们可以从Adobe官网找到。目前最新版本全名为:Adobe Acrobat Reader DC,打开Adobe Acrobat Reader DC 下载地址,根据提示选择操作系统、语言与下载的软件版本,点击立即下载以下载安装程序。下载完成后运行安装程序,按照提示安装即可。需注意,考虑操作稳定方便,不建议安装其他PDF查看器。
  2. 我们可以选择使用Internet Explorer 11 浏览器打开服务器产生的 PDF 文件链接,IE 浏览器无需进行任何调整,完美适配该任务。此页面可下载 IE11 。如果您适应IE浏览器的操作,那到此就可以在浏览器显示的 PDF 页面直接选择打印机进行打印了。
  3. 若想使用其他浏览器,我们需要检查浏览器相关设置。首先,检查浏览器是否有兼容模式调整按钮,一般存在于网址附近,将输出PDF文件的页面改为IE兼容模式即可调用 Adobe Reader 正常打印。若以上方式无效,或可检查浏览器设置中是否包含关闭浏览器自带PDF渲染器类似项目,通过此设置关闭浏览器自带的PDF查看器。若浏览器自带PDF查看器被关闭,其自然会调用Adobe Reader打开PDF内容。