These instructions for making a Citrix XenApp server externally accessible were created using Citrix XenApp 6.0 but would likely work on other versions with minor modifications.
Failure to complete these steps may result in connectivity problems and error messages such as "Cannot connect to the Citrix XenApp server. There is no Citrix XenApp server configured at the specified address."
If this article helped you or if you have further suggestions, please feel free to comment below.
IIS Manager settings
On your XenApp server, go into IIS Manager.
Click Default Web site in the left pane.
Click Bindings in the right pane, and enter the full external address of the server, i.e., citrix.yourcompany.com, for both http and https.
Server & DNS IP settings
Procure a static IP address from your ISP, and have them create an A Record in DNS for your Citrix server's full address (such as citrix.yourcompany.com).
Assign an internal static IP address on your Citrix XenApp server.
Create an entry on your internal DNS server mapping the Citrix server's internal IP address to its network name.
On your firewall, create a NAT policy pointing the Citrix server's external IP address to its internal IP address.
Also on the firewall, open TCP ports 1494 and 2598, leading to the Citrix XenApp server.
On the Citrix server, run a command prompt as administrator, then type altaddr /set xxx.xx.x.xxx (the external/NAT address of the server, such as 18.104.22.168).
Launch Citrix Web Server Management, and click Secure Access in the right pane.
Translation & final settings
Click Edit, and change Direct to Translated.
If internal clients will also need to use the Web Interface, click Add, and enter the IP address of your network (such as 10.1.50.0) and the subnet mask, and leave the access method as Direct.
Click OK and Next.
Click Add, and add "user device route translation" entries for ports 1494 and 2598 (two separate entries). You will need to enter the internal and external IP addresses for both entries.