Linux Web 服务器安装指南 – 快速入门
在终端中,按照以下步骤直接操作CODESYS 4在网络服务器上。
提示
如需更全面的指南,请参阅以下内容:安装为 Linux Web 服务器
开始CODESYS 4作为本地服务器
需要管理员权限
为了运行以下内容sudo使用命令时,您需要系统管理员权限(参见Debian Wiki:sudo)。
下载CODESYS 4从 CODESYS 商店购买 Debian 软件包。
安装CODESYS 4 Debian软件包。
sudo apt install ./codesys-4_[your version]_[your architecture].deb
创建群组
codesys-4以及用户c4-server这些是启动服务器和登录应用程序所必需的。在以下示例中,新增了一个名为“
hugo将被创建并添加到codesys-4该用户稍后将能够登录应用程序。此操作是可选的。出于测试目的,您也可以简单地将现有用户添加到该组中。codesys-4团体。创建
codesys-4如果该组尚不存在,则创建该组。该组应在安装 Debian 软件包期间自动创建。sudo addgroup codesys-4
创建一个新的系统用户,该用户将运行服务器。
sudo useradd --system --create-home c4-server
(可选)创建一个名为“test”的新测试用户
hugo记住密码。sudo adduser hugo
可选:添加
hugo用户到codesys-4团体。sudo adduser hugo codesys-4
在
/etc/systemd/system/创建一个名为的文件codesys-4.service。 代替nano使用您喜欢的编辑器。sudo nano /etc/systemd/system/codesys-4.service
按如下方式编辑文件:
[Unit] Description=CODESYS 4 Server [Service] Type=exec WorkingDirectory=/opt/codesys-4/ ExecStart=/opt/codesys-4/c4-server --port 8080 Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=codesys-4-server User=c4-server Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
启动你刚刚创建的systemd单元:
sudo systemctl start codesys-4
这CODESYS 4现在可以通过端口在本地访问服务器。
8080您现在可以使用之前创建的用户凭据登录应用程序。Hugo在http://localhost:8080。同时将单位设置为
enabled在系统启动时自动启动服务器:sudo systemctl enable codesys-4
设置反向代理
为了制作CODESYS 4要使网络上的其他设备能够访问该服务,需要设置上游 HTTPS 反向代理。这是由于技术要求所致。更多信息,请参阅以下内容:预先部署 TLS 反向代理。
例如,在 Debian 系统上,您可以使用 nginx 软件包来设置反向代理。以下详细说明了设置步骤。
如果尚未安装 nginx 软件包,请安装:
sudo apt update && sudo apt install -y nginx
要启用 HTTPS 通信,您需要创建一个临时自签名证书和一个密钥。
安全风险
创建自签名证书并将其标记为受信任证书会带来严重的安全风险。务必确保第三方永远无法访问您的证书或私钥。否则,您将容易受到中间人攻击。
此外,以下步骤创建的证书仅供测试用途,不可用于生产环境。要正确部署,CODESYS 4您应该已根据公司指南创建了可用于生产环境的TLS证书。如有需要,请联系您的IT部门或IT服务提供商寻求帮助。
如果您对此领域有任何疑问或不熟悉,则应立即停止进一步的调试工作,并联系您的 IT 部门或 IT 服务提供商。
为了进行测试,请为反向代理创建私钥和证书:
创建必要的文件夹。
sudo mkdir -p /etc/ssl/certs /etc/ssl/private
创建私钥和自签名证书。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/codesys-4.key \ -out /etc/ssl/certs/codesys-4-certificate.crt
使密钥仅对所有者(root)可读。
sudo chmod 600 /etc/ssl/private/codesys-4.key
使证书对所有人可见,但仅对所有者(root)可见。
sudo chmod 644 /etc/ssl/certs/codesys-4-certificate.crt
创建反向代理的配置。替换
nano使用您喜欢的编辑器。sudo nano /etc/nginx/sites-available/codesys-4
创建以下配置:
例 2. /etc/nginx/sites-available/codesys-4# See https://docs.microsoft.com/en-us/troubleshoot/developer/webapps/aspnetcore/practice-troubleshoot-linux/2-2-install-nginx-configure-it-reverse-proxy # for more information. server { listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/ssl/certs/codesys-4-certificate.crt; ssl_certificate_key /etc/ssl/private/codesys-4.key; #server_name _; server_tokens off; # see https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens location / { rewrite ^/$ /index.html last; proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; #hsts header add_header Strict-Transport-Security "max-age=31536000" always; } } # Redirect unencrypted http access to encrypted https access. server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name _; return 301 https://$host$request_uri; }通过符号链接启用配置:
禁用nginx的默认配置。
sudo rm /etc/nginx/sites-enabled/default
启用您创建的配置。
sudo ln -s /etc/nginx/sites-available/codesys-4 /etc/nginx/sites-enabled/codesys-4
现在重启nginx以应用更改后的配置:
sudo systemctl restart nginx
CODESYS 4现在应该可以通过以下方式联系到: https://localhost在端口 443 上或从您网络上的其他设备访问
https://[your_device_name/your_ip_address]。同时将 nginx 单元设置为
enabled同时在系统启动时自动启动反向代理:sudo systemctl enable nginx
如果您不知道自己的 IP 地址,请运行以下命令
ip命令。前提是贵公司网络和防火墙允许访问。ip addr
该命令的输出结果可能类似于这样:
#1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 # link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 # inet 127.0.0.1/8 scope host lo # valid_lft forever preferred_lft forever # inet6 ::1/128 scope host noprefixroute # valid_lft forever preferred_lft forever #2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 # link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff # inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic noprefixroute end0 # valid_lft 350450sec preferred_lft 350450sec # inet6 fe80::0123:1234:2345:3456/64 scope link noprefixroute # valid_lft forever preferred_lft forever
您可以在下方找到服务器的 IP 地址。
end0设备——通常也eth0或类似(见Debian Wiki:网络接口名称)。IPv4 地址(在单词之后)
inet:192.168.0.123IPv6 地址(在单词之后)
inet6:fe80::0123:1234:2345:3456例如
如果您使用如上所述的自签名证书,则浏览器中会显示警告:

请将浏览器中显示的证书与设备上的证书进行比较,以确保您已连接到您的设备。
为此,请在终端中运行以下命令:
openssl x509 -in /etc/ssl/certs/codesys-4-certificate.crt -noout -fingerprint -sha256
输出结果包含证书的指纹。请将其与浏览器中证书的 SHA-256 指纹进行比较。(参见) Firefox 的步骤或者在谷歌浏览器中通过以下方式不安全地址栏中的按钮 →证书详情()如果两个指纹完全相同,并且您了解风险,则可以点击暂时忽略警告。接受风险并继续(火狐浏览器)继续访问本地主机(不安全)(谷歌浏览器)